我想了解如何獲取在特定列表中保存的每個列表的長度。例如: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