如何使用对象向量上的条件进行while循环

时间:2019-01-17 04:27:05

标签: python while-loop

在python中,如果我有一个带有局部变量(布尔值)V的对象t的向量,其中t最初设置为False。我想做一个while循环,直到所有对象都将t设置为True ...我该怎么做?

即---这是您正在考虑的伪代码。

[o.t. = False for o in V] # initially all are false
while [o.t != True for o in V]:

... do stuff that will make o.t True eventually...

1 个答案:

答案 0 :(得分:1)

我认为您想要的状态的关键是all内置函数。由于您没有描述创建对象的类,因此我使用了一个小类来模拟您的情况:

import random
class customClass:
    def __init__(self, condition=False):
        self.condition = condition


v = [customClass() for _ in range(5)]

print([obj.condition for obj in v])
# Prints: [False, False, False, False, False]

while not all([obj.condition for obj in v]):

    #do stuff that sometimes changes the state of condition 
    # Here I randomly select an object and set its condition to true
    o = random.choice(v)
    o.condition = True

print([obj.condition for obj in v])
# Prints: [True, True, True, True, True]

请注意,迭代次数不是5,而while循环将继续直到馈送给它的列表的所有元素都为真。您可以查看其文档here