在Python中是否可以限制条件列表理解的长度?

在Python中是否可以限制条件列表理解的长度?,python,list-comprehension,Python,List Comprehension,我正在进行条件列表理解,例如newlist=[x代表x,如果x%2==0]。我想将结果列表的长度限制为一个特定的数字 如果不先理解整个列表,然后对其进行切片,是否可以这样做? 我想象一些具有以下功能的东西: limit = 10 newlist = [] for x in list: if len(newlist) > limit: break if x % 2 == 0: newlist.append(x) 无法对原始列表进行切片

我正在进行条件列表理解,例如
newlist=[x代表x,如果x%2==0]
。我想将结果列表的长度限制为一个特定的数字

如果不先理解整个列表,然后对其进行切片,是否可以这样做?

我想象一些具有以下功能的东西:

limit = 10
newlist = []

for x in list:

    if len(newlist) > limit:
        break 

    if x % 2 == 0:
        newlist.append(x)
无法对原始列表进行切片(例如,如果x%2==0,则列表中的x为x[:25]),因为在我的特定用例中,if条件不会在任何可预测的时间间隔内返回
True


非常感谢。

请不要命名任何变量
list
,因为它隐藏了内置的
list
构造函数。我使用
li
替换此处的输入列表

按需要导入itertools
gen=(如果x%2==0,则x代表li中的x)#惰性生成器。
结果=列表(it.islice(gen,25))

由于您正在使用列表理解功能创建列表,因此可以在创建列表后直接对其进行切片


[x代表列表中的x[:25]如果x%2==0][:limit]

这就解决了问题!谢谢!虽然有可能,但为什么要这样做?解决方案将包括几个深度嵌套的表达式–使用循环可能更容易阅读。这显然不是问题所希望的:“如果不先理解整个列表,然后将其切分,这是可能的吗?”嘿,似乎是这样。这就是你在深夜回答问题时得到的答案。