繁体   English   中英

是否可以在 function 中有多个条件,其中包括 Python 中的 for 循环?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM