我有一个字符串列表,如下所示:
stringList = ["a" , "aa", "aaa", "aaaa", "aaab", "aaac"]
我想要做的是返回列表中所有最长的字符串,我尝试使用 max 函数但它只返回一个值,而在这种情况下有 3 个长度为 4 的字符串。
谢谢你的帮助!
我有一个字符串列表,如下所示:
stringList = ["a" , "aa", "aaa", "aaaa", "aaab", "aaac"]
我想要做的是返回列表中所有最长的字符串,我尝试使用 max 函数但它只返回一个值,而在这种情况下有 3 个长度为 4 的字符串。
谢谢你的帮助!
使用list comprehension
和max
:
>>> lis= ["a" , "aa", "aaa", "aaaa", "aaab", "aaac"]
>>> le = max(len(x) for x in lis) #find out the max length
>>> [x for x in lis if len(x) == le] #now filter list based on that max length
['aaaa', 'aaab', 'aaac']
可能是这样的:
longest_len = 0
longest_strings = []
for s in stringList:
if len(s) > longest_len:
longest_len = len(s)
longest_strings = [s]
elif len(s) == longest_len:
longest_strings.append(s)
单个列表理解(即使列表被处理多次):
[s for s in stringList if len(s) == len(max(stringList, key=len))]
由于 Python v2.5,min() 和 max() 有一个可选的参数键,允许您指定比较方法。