如何删除列表中的字符串重复项?

问题描述:

我有字符串列表,但在每个字符串是重复的,我需要删除。 f.e:如何删除列表中的字符串重复项?

lst = ('word1 2 36 2 2' ' word2 96 5 5 5 14' 'word3 45 6 45 45') 

我需要:

lst = ('word1 2 36' 'word2 96 5 14' 'word3 45 6') 
+1

这些看上去并不像Python的'list's,但无论如何,与算法的一部分,你被卡住?向我们展示你迄今为止所尝试的,我们将尽力提供帮助。 – Johnsyweb

一般:

  1. 每个键wordN
  2. 在创建dictionary此键,转换项目通过listñset
  3. 迭代翻翻字典,然后从每个键的新列表及其设置的内容
+0

听起来有点像这个OP的早期问题之一[这个答案](http://*.com/questions/7706621/how-to-insert-duplicated-values-in-dictionary/7706691#7706691)。 – Johnsyweb

你的问题不是很清楚,你写的“清单”不是一个清单,而是一个字符串。我猜你可能是想让它成为一个元组,但即使这样你也需要在这两个项目之间加逗号。

在下面的例子中,我们遍历项目,分割字符串split()功能,添加项目到set,用字符串join再次加入他们在一起,他们这次追加到我们的输出列表(一个真正的列表):

>>> lst = ('word1 2 36 2 2', ' word2 96 5 5 5 14', 'word3 45 6 45 45') 
>>> out = [] 
>>> for item in lst: 
... tokens = item.split() 
... s = set(tokens) 
... joined = " ".join(s) 
... out.append(joined) 
... 
>>> out 
['2 word1 36', '96 5 14 word2', '45 word3 6'] 

这可以用一个列表理解更为紧凑写着:

>>> lst = ('word1 2 36 2 2', ' word2 96 5 5 5 14', 'word3 45 6 45 45') 
>>> out = [" ".join(set(item.split())) for item in lst] 
>>> out 
['2 word1 36', '96 5 14 word2', '45 word3 6'] 
+0

是的抱歉,我忘记了逗号,但要更具体我需要维护秩序,它必须是第一个单词1和数字后的顺序与之前相同,因为单词不会重复,只有数字,所以我需要留言左侧,并从数字中删除重复 – user986761

+0

然后做Alex上面写的。 – beerbajay

+0

另外,你应该解释为什么你想在你的帖子中做点什么。由于你的问题很琐碎,并且没有给出任何上下文,因此你会得到很多低估。你真的需要回弦吗?如果是这样,为什么?你为什么需要维持秩序?到目前为止,有什么必须尝试?如果你解释更大的图片,你可能会得到更有用的答案(即答案,教你一些东西,而不是回答你的狭隘和可能“错误”的问题)。 – beerbajay