【发布时间】:2013-04-05 15:10:16
【问题描述】:
所以我有一个子列表列表,在子列表中,有字符串。
字符串的长度通常不同,但也可以相同。
以下是列表示例
sequences = [['aaa'],['aaaa','bb'],[],['aaaaaa','bb','cccccc']]
我想找到一种方法从每个列表中提取最长的字符串,如果有两个同样长,那么就取这两个字符串
example_output = [['aaa'],['aaaa'],[],['aaaaaa','cccccc']]
通常我会在 for 循环中设置一个阈值,如果它长于某个长度,则附加到一个列表中,然后在每次迭代后将其附加到一个列表中。 . .但在这种情况下我没有阈值
如果可能的话,我想尽量避免使用 lambda 和函数,因为这将在另一个函数中
【问题讨论】:
-
你不能用正则表达式来做到这一点。正则表达式不是用于比较列表中单独字符串的工具。为什么要在这里避开
itertools? -
输出列表的顺序重要吗?还是只是您要检索长度最长的元素?
-
@MartijnPieters 我不一定要避免使用 itertools,但主要是在表达式中加入 lambda。
-
@g.d.d.c 输出列表的顺序至关重要,因为每个序列都与另一个列表中的某个名称相关联。这就是为什么我也加入了一些空列表
标签: python string list search greatest-n-per-group