I have a list
and want to build (via a comprehension) another list. I would like this new list to be limited in size, via a condition
The following code will fail:
a = [1, 2, 1, 2, 1, 2]
b = [i for i in a if i == 1 and len(b) < 3]
with
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
because b
is not defined yet at the time the comprehension is built.
Is there a way to limit the size of the new list at build time?
Note: I could break the comprehension into a for
loop with the proper break
when a counter is reached but I would like to know if there is a mechanism which uses a comprehension.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…