【发布时间】:2021-11-06 00:11:06
【问题描述】:
我有一个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 在构建理解时尚未定义。
有没有办法在构建时限制新列表的大小?
注意:当达到计数器时,我可以使用正确的 break 将理解分解为 for 循环,但我想知道是否存在使用理解的机制。
【问题讨论】: