我想知道如何从列表(数组)字符串中找到两个最长的字符串,或者如何从列表中找到第二个最长的字符串。感谢
答案 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