2012-03-27 94 views

回答

5

您可以使用標準的heapq module做到這一點:

>>> lst = ['hello', 'blah', 'boo', 'braininess'] 
>>> heapq.nlargest(2, lst, key=len) 
['braininess', 'hello'] 
1

如果是你的字符串列表,然後a.sort(鍵= LEN)將整理您通過其長度的字符串列表。最長的是[-1],第二長的是[-2]。 `

5
做,這是通過其他內置功能 lenkey參數按如下方式使用 sorted()功能

最簡單的方法;

>>> foo = ['dddd', 'ccc', 'bb', 'a', 'eeeee'] 
>>> sorted(foo, key=len)[-2] 
'dddd' 

,或者如果您需要兩個最長:

>>> sorted(foo, key=len)[-2:] 
['dddd', 'eeeee'] 
0
l = ['123', '12345', '12'] 
l.sort(key=lambda item: len(item)) 
l.[-1] # longest 
l.[-2] # second longest 
+2

如果你使用的是lambda表達式,那麼你可以使用''-len(item)''來讓它們按降序排列以獲得更多的正常訪問,但是,只需要給出len結構作爲''key''參數。 – 2012-03-27 10:12:58

+0

謝謝Lattyware - 我不知道。我會記下來。 – Adobe 2012-03-27 10:15:32

相關問題