Python - 返回列表中最长的字符串

2024-04-25 13:21:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串列表,如下所示:

stringList = ["a" , "aa", "aaa", "aaaa", "aaab", "aaac"]

我要做的是返回列表中所有最长的字符串,我尝试过使用max函数,但它只返回一个值,而在本例中有3个长度为4的字符串。

谢谢你的帮助!


Tags: 函数字符串列表maxaaaaaaaaa本例
3条回答

可能是这样的:

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)

使用list comprehensionmax

>>> 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']

单一列表理解(即使列表被多次处理):

[s for s in stringList if len(s) == len(max(stringList, key=len))]

由于Python v2.5,min()和max()有一个可选的参数键,允许您指定比较方法。

相关问题 更多 >