我是python的新手,我有一个包含以下内容的文本文件
ss ss1,ss ss2,ss ss3,ss ss2,ss ss2,ss ss3
我想删除重复的单词。我的预期输出如下
ss ss1,ss ss2,ss ss3
我正在使用以下代码
f = open('a.txt', 'r')
file_contents = f.read()
words = file_contents.split()
SS=",".join(sorted(set(words), key=words.index))
print SS
我当前的输出是
ss,ss1,,ss2,,ss3,,ss2
最佳答案
如果不需要列表的顺序,可以尝试以下操作:
>>> f="ss ss1, ss ss2, ss ss3, ss ss2, ss ss2, ss ss3"
>>> list(set( f.split(', ')))
['ss ss2', 'ss ss3', 'ss ss1']
从
set
构造list
可能会花费很多时间,这是保持顺序的另一种方法:>>> f="ss ss1, ss ss2, ss ss3, ss ss2, ss ss2, ss ss3"
>>> result=[]
>>> for i in f.split(', '):
... if i not in result:
... result.append(i)
...
>>> result
['ss ss1', 'ss ss2', 'ss ss3']
顺便说一句,如果列表很大,并且使用
set
检查新项目是否已经存在是一种更有效的方法。>>> result=[]
>>> s=set()
>>> for i in f.split(', '):
... if i not in s:
... result.append(i)
... s.add(i)
...
>>> result
['ss ss1', 'ss ss2', 'ss ss3']
关于python - 删除以逗号分隔的重复单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43908180/