Python:如何从列表中删除重复项并按顺序打印新列表

Python:如何从列表中删除重复项并按顺序打印新列表,python,list,duplicates,Python,List,Duplicates,基本上,我有一个包含以下单词的列表 ['ask', 'not', 'what', 'your', 'country', 'can', 'do', 'for', 'you', 'ask', 'what', 'you', 'can', 'do', 'for', 'your', 'country'] (这是我的老师给我的例子,对于测试来说非常好) 我想弄清楚如何删除任何重复项并打印出没有重复项的新列表,因此输出应该是 ['ask', 'not', 'what', 'your', 'country'

基本上,我有一个包含以下单词的列表

['ask', 'not', 'what', 'your', 'country', 'can', 'do', 'for', 'you', 'ask', 'what', 'you', 'can', 'do', 'for', 'your', 'country'] 
(这是我的老师给我的例子,对于测试来说非常好)

我想弄清楚如何删除任何重复项并打印出没有重复项的新列表,因此输出应该是

['ask', 'not', 'what', 'your', 'country', 'can', 'do', 'for', 'you'] 
在最初尝试使用set()之后,我设法删除了重复的内容,但它只是以随机顺序打印出句子,这很麻烦

这是我的密码:

sentence = input('Please enter a sentence. No punctuation may be included: enter code here').lower().split()
print('This is your sentence:', sentence)
no_duplicates = list(set(sentence))
print('This is your sentence without duplicates', no_duplicates)

顺便说一句,如果你没有注意到,我对编码还是个新手,所以请尽量让你的答案保持简单,以便我能理解你的意思。

集合不是随机的,而是无序的。这意味着在用例中不能像这样使用它们,因为顺序在这个任务中很重要


但是,有一个使用集合的简单解决方案。因为这是家庭作业,我不会给你代码,但是算法是从一个空集开始,然后迭代每个单词,检查它是否已经在集合中:如果不在集合中,将它添加到集合和输出列表中,否则跳过它。

为什么不使用OrderedDict

>>> lst=['ask', 'not', 'what', 'your', 'country', 'can', 'do', 'for', 'you', 'ask', 'what', 'you', 'can', 'do', 'for', 'your', 'country']
>>> from collections import OrderedDict
>>> [k for k in OrderedDict((el,0) for el in lst)]
['ask', 'not', 'what', 'your', 'country', 'can', 'do', 'for', 'you']

我正要回答:(哦,对不起。我想我读的是按字母排序的。删除评论。