gpt4 book ai didi

python - 从 list 内的子列表中提取最长的字符串。 Python

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:50 33 4
gpt4 key购买 nike

所以我有一个子列表列表,并且在子列表中,有字符串。

字符串通常具有不同的长度,但也可以具有相同的长度。

下面是列表的示例

sequences = [['aaa'],['aaaa','bb'],[],['aaaaaa','bb','cccccc']]

我想找到一种方法从每个列表中提取最长的字符串,如果有两个同样长,则取出这两个字符串

example_output = [['aaa'],['aaaa'],[],['aaaaaa','cccccc']]

通常我会在 for 循环中设置一个阈值,如果它比某个长度长,则附加到一个列表,然后在每次迭代后将其附加到一个列表。 。 。但在这种情况下我没有阈值

如果可能的话,我想尝试避免使用 lambda 和函数,因为这将在另一个函数中

最佳答案

您可以使用迄今为止看到的最长字符串的长度作为阈值(下面代码中的maxlen):

def get_longest(seq):
maxlen = -1
ret = []
for el in seq:
if len(el) > maxlen:
ret = [el]
maxlen = len(el)
elif len(el) == maxlen:
ret.append(el)
return ret

sequences = [['aaa'],['aaaa','bb'],[],['aaaaaa','bb','cccccc']]
example_output = list(map(get_longest, sequences))
print(example_output)

这会产生:

[['aaa'], ['aaaa'], [], ['aaaaaa', 'cccccc']]

关于python - 从 list 内的子列表中提取最长的字符串。 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15837395/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com