Python列表输入2个相同的单词,如何只打印一次
嗨,第一次在这里发帖,我试图制作一个只打印一次输入的列表。例如,如果用户输入: 汽车 狗 狗 房子 汽车 然后,您的程序应显示: 汽车 狗 房子 我也试过了Python列表输入2个相同的单词,如何只打印一次,python,list,Python,List,嗨,第一次在这里发帖,我试图制作一个只打印一次输入的列表。例如,如果用户输入: 汽车 狗 狗 房子 汽车 然后,您的程序应显示: 汽车 狗 房子 我也试过了 if word == wordlist: wordlist[-1] 任何帮助都会很好。如果单词顺序无关紧要,请使用set wordlist = set() while True: word = (input("Enter a word (blank to quit): ")) if word == "":
if word == wordlist:
wordlist[-1]
任何帮助都会很好。如果单词顺序无关紧要,请使用
set
wordlist = set()
while True:
word = (input("Enter a word (blank to quit): "))
if word == "":
break
wordlist.add(word)
for word in wordlist:
print(word)
如果插入单词的顺序很重要,请在列表中附加条件
wordlist = []
while True:
word = (input("Enter a word (blank to quit): "))
if word == "":
break
if word not in wordlist:
wordlist.append(word)
for word in wordlist:
print(word)
如果您想保留副本,但只想在打印时删除
for word in set(wordlist):
print(word)
如果打印时需要维护订单
visited=set()
for word in wordlist:
if word not in visited:
print(word)
visited.add(word)
您可以尝试以下操作:
wordlist = []
while True:
word = (input("Enter a word (blank to quit): "))
if not word:
break
elif word not in wordlist:
wordlist.append(word)
for word in wordlist:
print(word)
如果您也替换了
wordlist,则单词列表中的word应该可以工作。用继续删除(word)
,然后放入wordlist。在检查后追加(word)
,而不是在检查之前word==wordlist
正在将字符串与列表进行比较,在代码中可能永远不会返回True
。此外,缩进不一致-我建议使用保持其一致性的IDE,否则会遇到各种问题。如果word不在wordlist中:wordlist.append(word)
是您在中阅读单词后立即需要的。如果您搜索短语“Python教程列表”,您将找到比我们在这里的答案更好的资源来解释它。非常简单地说,您将单个单词(字符串)与整个列表进行比较。这些永远不可能是平等的。
In [49]: words = 'car dog dog house car'.split()
In [50]: from collections import OrderedDict
In [51]: word_dict = OrderedDict()
In [52]: for word in words:
...: word_dict[word] = None
...:
In [53]: for word in word_dict:
...: print(word)
...:
car
dog
house
wordlist = []
while True:
word = (input("Enter a word (blank to quit): "))
if not word:
break
elif word not in wordlist:
wordlist.append(word)
for word in wordlist:
print(word)