我想从列表中删除重复的项目,并保持原始列表的顺序,如我的示例所示:
['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically']
我想要这个:
['hangman', 'song', 'most', 'broadly', 'work', 'music', 'typically']
我该怎么做:
答案 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
。