如何过滤列表中不在python中重复的单词?

时间:2019-02-22 15:26:10

标签: python list

我想从列表中删除重复的项目,并保持原始列表的顺序,如我的示例所示:

['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically'] 

我想要这个:

['hangman', 'song', 'most', 'broadly', 'work', 'music', 'typically']

我该怎么做:

4 个答案:

答案 0 :(得分:3)

您可以为此使用set,集合将不接受一个以上的项目:

old_list = ['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically'] 

new_list = list(set(old_list))

new_list将是:

['hangman', 'song', 'most', 'broadly', 'work', 'music', 'typically']

答案 1 :(得分:1)

这将保留您的old_list的顺序,以备不时之需。

old_list = ['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically']

new_list = []

for n in old_list:
    if n not in new_list:
        new_list.append(n)

print(new_list)

答案 2 :(得分:0)

您可以使用Set进行此操作。 Python在此处设置了实现文档(假设您使用的是python3)enter link description here。使用第一个列表作为输入,您可以将所有元素添加到集合中,并且添加操作将忽略重复项。但是,当从集合中读回时,则不能保证顺序。

示例:

>>> mylist = ["a", "b", "c", "a"]
>>> myset = set(mylist)
>>> myset
set(['a', 'c', 'b'])

答案 3 :(得分:0)

要删除重复项并保持Python 3.7中原始列表的顺序,可以使用dict.fromkeys()

l = ['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically'] 

list(dict.fromkeys(l))
# ['hangman', 'song', 'most', 'broadly', 'work', 'music', 'typically']

否则,请使用OrderedDict