如何拼接逗号分隔的字符串并去除重复值
逗号分隔字符串合并去重方案
核心实现逻辑
- 先将两个输入字符串按
,分割为单个元素组成的列表 - 合并两个列表,按「先出现优先保留」的规则去重,保证原有顺序符合输出要求
- 最后将去重后的列表用
,拼接为最终字符串
代码示例(Python)
常规写法,兼容性好易理解:
x = "a,b,c,d,e,f" y = "d,e,f,g,h" # 分割字符串为列表 x_items = x.split(",") y_items = y.split(",") # 合并去重保序 exist_items = set() result_list = [] for item in x_items + y_items: if item not in exist_items: exist_items.add(item) result_list.append(item) # 拼接为最终字符串 z = ",".join(result_list) print(z) # 输出结果:a,b,c,d,e,f,g,h
极简写法(适用于Python 3.7及以上版本,利用字典天然保序特性):
z = ",".join(dict.fromkeys(x.split(",") + y.split(",")).keys())
代码示例(Perl)
适配变量带@前缀的Perl语法场景:
my $x = "a,b,c,d,e,f"; my $y = "d,e,f,g,h"; my %seen; my @merged = grep { !$seen{$_}++ } (split(/,/, $x), split(/,/, $y)); my $z = join(',', @merged); print $z; # 输出结果:a,b,c,d,e,f,g,h
内容的提问来源于stack exchange,提问作者Yoda
相关产品推荐
相关产品推荐

