У меня есть list
и вы хотите создать (через понимание) другой список. Я хотел бы, чтобы этот новый список был ограничен по размеру, используя условие
Следующий код не будет выполнен:
a = [1, 2, 1, 2, 1, 2]
b = [i for i in a if i == 1 and len(b) < 3]
с
Traceback (most recent call last):
File "compr.py", line 2, in <module>
b = [i for i in a if i == 1 and len(b) < 3]
File "compr.py", line 2, in <listcomp>
b = [i for i in a if i == 1 and len(b) < 3]
NameError: name 'b' is not defined
потому что b
не определяется еще во время создания понимания.
Есть ли способ ограничить размер нового списка во время сборки?
Примечание. Я могу разбить понимание в цикле for
с правильным break
, когда счетчик достигнут, но я хотел бы знать, есть ли механизм, который использует понимание.