2013-07-19 148 views

回答

4

你的意思是length

>>> sorted(d, key=lambda k: -len(d[k])) 
['Gross', 'Ugly', 'Random', 'Stupid'] 
>>> sorted(d, key=lambda k: len(d[k]), reverse=True) 
['Gross', 'Ugly', 'Random', 'Stupid'] 
+0

這對我的作品。謝謝,我需要習慣lambda。嘆息 順便說一句,爲什麼不使用'count'而不是'len' /。 –

+2

count計算列表中項目的出現次數,length返回列表中所有項目的數量 –

+0

@DeepankarBajpeyi,'[1,1,1,3] .count(1)'給出'3'。 'len([1,1,1,3])給出'4'。如果你想'3',使用'count'。 – falsetru

1

因爲你是從字典開始可能你需要一個結束,而不是一個列表,以便:

>>> import collections 
>>> d = { 
...  "Random" : [1,2,3], "Stupid" : [1], "Gross" : [1,1,1,1,1], "Ugly" : [2,1,1,1] 
...  } 
>>> sd = collections.OrderedDict(sorted(d.items(), key=lambda t: -len(t[1]))) 
>>> sd 
OrderedDict([('Gross', [1, 1, 1, 1, 1]), ('Ugly', [2, 1, 1, 1]), ('Random', [1, 2, 3]), ('Stupid', [1])]) 
>>>