Python在子列表中查找列表长度

时间:2010-01-09 00:55:05

标签: python list

我试图找出如何获取特定列表中保存的每个列表的长度。例如:

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]。这个命令显然不起作用,我试过的其他一些也没有用。请帮忙!

7 个答案:

答案 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]))