python:如何在列表生成器表达式中获取列表长度?

python:如何在列表生成器表达式中获取列表长度?,python,Python,也许这只是一个伪代码 li = [1,2,3,4,5,6] a = [d for d in li if self.length<3] print a [1,2] 做那件事的蟒蛇式方法是什么 您可以使用itertools.count来跟踪您使用了多少元素: from itertools import count li = [1,2,3,4,5,6] c = count(1) # initialize to 1 a = [d for d in li if next(c

也许这只是一个伪代码

li = [1,2,3,4,5,6]  
a = [d for d in li if self.length<3]  
print a  
[1,2]  
做那件事的蟒蛇式方法是什么

您可以使用itertools.count来跟踪您使用了多少元素:

from itertools import count

li = [1,2,3,4,5,6]
c = count(1)    # initialize to 1
a = [d for d in li if next(c) < 3]   # everytime you add an element 
print (a)                            # in the comprehension `c` is incremented
如预期长度2

编辑:更简单的方式,使用枚举:


长我想你指的是价值?什么是自我?你不能参考列表理解中生成的列表。为什么不仅仅是a=li[:2]?Hi Tan,请澄清:是长度值吗?对不起,我是指长度,我只是想控制表达式中的循环。请使用next函数,而不是直接调用uuu next_uu方法。nextc在Python2和Python3中更具可读性和可移植性?李和伯爵之间有着直接的联系。谢谢你的提示,其实我并没有想到,列举起来真的很容易,而且是首选的方式。
[1, 2]
a = [d for idx, d in enumerate(li) if idx < 2]