我想了解如何获取在特定列表中保存的每个列表的长度。例如:Python在子列表中查找列表长度
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]列表。这个命令显然不起作用,我尝试过的其他几个也不行。请帮忙!
我想了解如何获取在特定列表中保存的每个列表的长度。例如:Python在子列表中查找列表长度
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]列表。这个命令显然不起作用,我尝试过的其他几个也不行。请帮忙!
[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]
根据您的a [0]的大小,您可能希望选择使用地图的Matthew Iselin的解决方案。在某些情况下(不需要拉姆达),地图可能会稍微快一些。但那只会是一个非常大的[0] – sberry 2010-01-09 01:06:25
[len(x) for x in a[0]]
这被称为List comprehension(点击了解更多信息和说明)。
[len(l) for l in a[0]]
map(len, a[0])
def lens(listoflists):
return [len(x) for x in listoflists]
现在,只需拨打lens(a[0])
,而不是你想要的len(a[0][:])
(你可以,如果你坚持,添加冗余[:]
,但是这只是在做一个副本,没有目的任何 - 浪费不可;-)。
使用通常的“老派”的方式
t=[]
for item in a[0]:
t.append(len(item))
print t
马修的答案在Python 3不起作用以下两个的Python 2和Python 3
list(map(len, a[0]))
一个作品是否有可能在[0]里面的列表是否也包含列表? – danben 2010-01-09 00:58:44