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

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

如果不先理解整个列表然后对其进行切片,这可能吗?

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

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],不可能,因为True在我的特定用例中,if 条件不会以任何可预测的间隔返回。

提前谢谢了。

回答

请不要命名任何变量,list因为它会影响内置list构造函数。我li在这里用作输入列表的替代品。

import itertools as it

gen = (x for x in li if x % 2 == 0)  # Lazy generator.
result = list(it.islice(gen, 25))


以上是是否可以限制Python中条件列表理解的长度?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>