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