【发布时间】:2021-01-10 18:33:24
【问题描述】:
我正在做一个条件列表理解,例如newlist = [x for x in list if x % 2 == 0]。我想将 resulting 列表的长度限制为特定数字。
如果不先理解整个列表然后对其进行切片,这是否可能?
我想象一些具有以下功能的东西:
limit = 10
newlist = []
for x in list:
if len(newlist) > limit:
break
if x % 2 == 0:
newlist.append(x)
对原始列表进行切片(例如,[x for x in list[:25] if x % 2 == 0] 是不可能的,因为在我的特定用例中,if 条件不会在任何可预测的时间间隔内返回 True。
非常感谢。
【问题讨论】:
-
虽然有可能,但你为什么要这样做?该解决方案将包括几个深度嵌套的表达式——使用循环可能更易读。