Я могу использовать if
и для
в выражениях списков / генераторов как
list(i for i in range(100) if i*i < 30)
Я знаю, что это не самый эффективный вариант, но потерпите меня, так как состояние могло быть намного сложнее, и это всего лишь пример. Однако это все еще проходит через сотни итераций и дает значение только в первых 6. Есть ли способ указать выражению генератора, где остановиться, с помощью чего-то вроде этого:
list(i for i in range(100) while i*i < 30)
Однако , а
не понимается в выражениях генератора. Итак, мой вопрос: как мне написать выражение генератора с условием остановки, чтобы оно не продолжало вычисления, даже если оно не дает новых значений.