私信  •  关注

WolframH

WolframH 最近创建的主题
WolframH 最近回复了
12 年前
回复了 WolframH 创建的主题 » 在python的[]中使用break或continue会产生错误[duplicate]

使用函数来提升 StopIteration list 要抓住它:

>>> def end_of_loop():
...     raise StopIteration
... 
>>> even = list(end_of_loop() if n == 412 else n for n in numbers if 0 == n % 2)
>>> print(even)
[402, 984, 360, 408, 980, 544, 390, 984, 592, 236, 942, 386, 462, 418, 344, 236, 566, 978, 328, 162, 758, 918]

对于那些抱怨的人来说,这不是一句空话:

even = list(next(iter(())) if n == 412 else n for n in numbers if 0 == n % 2)

对于那些抱怨它是黑客的,不应该在生产代码中使用:嗯,你是对的。 一定地。