[英]Is it possible to have multiple conditions in a function which includes a for loop in Python?
我是使用 Python 编程的新手。 目前,我正在开发一个程序/算法,以根据这些项目的状况确定维护(多个项目的组合更换)。 准确地说,我想在一个项目的条件低于预定阈值(例如 10%)时替换这些项目。 我的代码遇到的问题(见下文)是当满足此阈值时,所有项目都会被替换。
def maintenance_action(self):
do_repair = False
for i in item:
if i.condition[-1] <= 10:
do_repair = True
break
if do_repair:
for i in items:
i.repair()
但是,我想包括一个额外的阈值(比如说 50%),它将所有条件 > 50% 的项目排除在维护操作之外。 重要的是,在第二个“开始”(我想要包括的项目)之前满足第一个阈值(因为必须更换这个项目)。 我希望有一个人可以帮助我。
谢谢!
最简单的方法是立即调用修复,并且根本不使用标志:
for i in items:
if i.condition[-1] <= 10:
i.repair()
或者,如果您不能这样做,您可以在第一个循环中构建要修复的项目列表,然后稍后处理该列表:
items_to_repair = []
for i in item:
if i.condition[-1] <= 10:
items_to_repair.append(i)
# other code here
for i in items_to_repair:
i.repair()
如果满足条件时在for
循环do_repair
设置为True
,则在第二个循环中修复所有变量。 为了防止这种情况,您应该将满足的项目修复到第一个循环中的条件。 所以我认为在这种情况下不需要使用do_repair
变量和第二个for
循环。
def maintenance_action(self):
for i in item:
if i.condition[-1] <= 10:
i.repair()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.