也許像這樣(只是一個僞代碼)python:如何獲得列表生成器表達式中的列表長度?
li = [1,2,3,4,5,6]
a = [d for d in li if self.length<3]
print a
[1,2]
什麼是Python的方式做那件事?
也許像這樣(只是一個僞代碼)python:如何獲得列表生成器表達式中的列表長度?
li = [1,2,3,4,5,6]
a = [d for d in li if self.length<3]
print a
[1,2]
什麼是Python的方式做那件事?
您可以使用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
用於跟蹤添加到列表中的元素,列表的,因此它的長度,得出:
[1, 2]
如預期與長度
2.
EDITED:更簡單的方法,用enumerate
:
a = [d for idx, d in enumerate(li) if idx < 2]
請使用'next()'函數而不是直接調用'__next__'方法。 'next(c)'在Python 2和3中更具可讀性和可移植性。 –
此外,爲什麼在使用'enumerate()'時使用'count()'? 「李」與計數之間有直接關係。 –
謝謝你的提示,其實際上並沒有跨越我的想法,'列舉'真正簡單和首選的方式。 –
長度?我認爲你的意思是價值? –
什麼是「自我」? – ozgur
您無法引用列表理解中正在生成的列表。爲什麼不只是'a = li [:2]'? –