2024-04-25 13:21:19 发布
网友
我有一个字符串列表,如下所示:
stringList = ["a" , "aa", "aaa", "aaaa", "aaab", "aaac"]
我要做的是返回列表中所有最长的字符串,我尝试过使用max函数,但它只返回一个值,而在本例中有3个长度为4的字符串。
谢谢你的帮助!
可能是这样的:
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 comprehension和max:
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']
单一列表理解(即使列表被多次处理):
[s for s in stringList if len(s) == len(max(stringList, key=len))]
由于Python v2.5,min()和max()有一个可选的参数键,允许您指定比较方法。
可能是这样的:
使用
list comprehension
和max
:单一列表理解(即使列表被多次处理):
由于Python v2.5,min()和max()有一个可选的参数键,允许您指定比较方法。
相关问题 更多 >
编程相关推荐