删除以逗号分隔的重复单词

时间:2017-05-11 06:37:19

标签: python

我是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

1 个答案:

答案 0 :(得分:2)

如果您不需要列表的顺序,可以试试这个:

>>> 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']
相关问题