从列表||中查找两个最长的字符串或PYTHON中第二长的名单

时间:2012-03-27 10:04:55

标签: python arrays string list find

我想知道如何从列表(数组)字符串中找到两个最长的字符串,或者如何从列表中找到第二个最长的字符串。感谢

4 个答案:

答案 0 :(得分:5)

您可以使用标准heapq module

执行此操作
>>> lst = ['hello', 'blah', 'boo', 'braininess']
>>> heapq.nlargest(2, lst, key=len)
['braininess', 'hello']

答案 1 :(得分:5)

最简单的方法是使用sorted()函数,使用另一个内置函数len作为key参数,如下所示;

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

或者如果你需要最长的两个:

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

答案 2 :(得分:1)

如果a是你的字符串列表,那么a.sort(key = len)将按字符串的长度对字符串列表进行排序。最长的是[-1],第二长的是[-2]。 `

答案 3 :(得分:0)

l = ['123', '12345', '12']
l.sort(key=lambda item: len(item))
l.[-1] # longest
l.[-2] # second longest