Как сделать цикл while используя условие над вектором объектов

Если у вас есть Python:

python -c "import sys; print(sys.stdout.encoding)"
-2
задан petezurich 17 January 2019 в 05:23
поделиться

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 продолжается до тех пор, пока все элементы списка, поданного к нему, верны. Вы можете проверить его документацию здесь .

0
ответ дан Farzad Vertigo 17 January 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: