gpt4 book ai didi

Python 从列表中删除特定的重复项

转载 作者:行者123 更新时间:2023-11-28 17:38:13 25 4
gpt4 key购买 nike

我想从列表中删除特定的重复项。使用 Perl,我将使用以下代码完成任务:

my @list = ( 'a1', 'a1', 'b1', 'b1' );

my %seen;
@list = grep( !/a\d/ || !$seen{ $_ }++, @list );

想要的结果是这样的:

@list = ( 'a1', 'b1', 'b1' );

我如何使用正则表达式和列表理解在 Python 3 中执行此操作。谢谢。

最佳答案

您可以使用 itertools.chaingroupby :

>>> list(chain(*[[i[0]] if 'a1' in i else i for i in [list(g) for _,g in groupby(sorted(l))]]))
['a1', 'b1', 'b1']

如果您只想使用 regex,您可以连接 n 使用 re.sub 的元素,但请注意它适用于这种特殊情况! , 是分隔符! :

>>> l =['a1', 'a1', 'b1', 'b1']
>>> re.sub(r'(a1,)+','a1,',','.join(sorted(l))).split(',')
['a1', 'b1', 'b1']

关于Python 从列表中删除特定的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28245291/

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