在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...
答案 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。