如何摆脱逗号分隔字符串中的重复条目

qwr*_*rty 3 python string parsing

我有一个逗号分隔的字符串,如何以pythonic方式删除字符串中的重复条目.

例如,字符串"a,a,b"应更改为"a,b".

Kon*_*lph 9

元素的顺序是否重要?如果没有,最简单的方法是创建一个set:

result = ','.join(set(text.split(',')))
Run Code Online (Sandbox Code Playgroud)

但正如我所说,这将不会保留原始字符串的顺序:

>>> text = 'b,a,b'
>>> ','.join(set(text.split(',')))
'a,b'
Run Code Online (Sandbox Code Playgroud)


ale*_*cxe 6

如果订单很重要,您可以使用OrderedDict:

>>> from collections import OrderedDict
>>> s = "a,a,b"
>>> ",".join(OrderedDict.fromkeys(s.split(',')))
'a,b'
Run Code Online (Sandbox Code Playgroud)

请注意,这也将处理彼此不相邻的重复项:

>>> s = "a,b,a,a,a,b"
>>> ",".join(OrderedDict.fromkeys(s.split(',')))
'a,b'
Run Code Online (Sandbox Code Playgroud)