我试图找出如何获取特定列表中保存的每个列表的长度。例如:
a = []
a.append([])
a[0].append([1,2,3,4,5])
a[0].append([1,2,3,4])
a[0].append([1,2,3])
我想运行如下命令:
len(a[0][:])
将输出我想要的答案,这是一个长度列表[5,4,3]。这个命令显然不起作用,我试过的其他一些也没有用。请帮忙!
答案 0 :(得分:19)
[len(x) for x in a[0]]
?
>>> a = []
>>> a.append([])
>>> a[0].append([1,2,3,4,5])
>>> a[0].append([1,2,3,4])
>>> a[0].append([1,2,3])
>>> [len(x) for x in a[0]]
[5, 4, 3]
答案 1 :(得分:8)
map(len, a[0])
答案 2 :(得分:3)
[len(x) for x in a[0]]
答案 3 :(得分:3)
这称为List comprehension(点击了解更多信息和说明)。
[len(l) for l in a[0]]
答案 4 :(得分:2)
def lens(listoflists):
return [len(x) for x in listoflists]
现在,只需拨打lens(a[0])
而不是您想要的len(a[0][:])
(如果您坚持,可以添加多余的[:]
,但这只是为了一无所获的副本 - 不要浪费,不要浪费; - )。
答案 5 :(得分:1)
使用通常的“老派”方式
t=[]
for item in a[0]:
t.append(len(item))
print t
答案 6 :(得分:0)
Matthew的答案在Python 3中不起作用。以下内容适用于Python 2和Python 3
list(map(len, a[0]))