使用列表查找唯一条目。蟒蛇

时间:2014-10-17 04:01:21

标签: python

我正在使用grok学习,我似乎无法通过这个问题。您需要制作一个程序程序,您可以一次输入一个单词,并告诉您输入了多少个唯一单词。你不应该重复计算。当您输入空行时,程序应停止询问更多单词。

这是我目前的代码:

words = []
word = input("Word: ")
while word != '': 
    words.append(word)
    word = input("Word: ")
print('You know', len(words), 'unique word(s)!')

它计算您输入的单词数量,但我无法弄清楚如何检查单词是否唯一。以下是所需的输出:

Word: Chat
Word: Chien
Word: Chat
Word: Escargot
Word: 
You know 3 unique word(s)!

这是另一个:

Word: Katze
Word: Hund
Word: Maus
Word: Papagei
Word: Schlange
Word: 
You know 5 unique word(s)!

3 个答案:

答案 0 :(得分:3)

>>> words = ['Chat', 'Chien', 'Chat', 'Escargot']
>>> set(words)
set(['Chien', 'Escargot', 'Chat'])
>>> "You know " + str(len(set(words))) + " unique word(s)!"
'You know 3 unique word(s)!'

答案 1 :(得分:0)

如果您不想存储重复项,请使用该集。

words = set() #initialize a set
word = input("Word: ")
while word != '': 
    words.append(word)
    word = input("Word: ")
print('You know', len(words), 'unique word(s)!')  

如果要存储所有元素而不管重复项,请使用列表
如果要在列表中查找唯一元素,请执行以下操作:

myset = set(words) #Now, myset has unique elements
print('You know', len(myset), 'unique word(s)!')

答案 2 :(得分:0)

根据您在本课程中应该学到的内容,您可以使用if语句检查您正在查看的单词是否已在words列表中,并且只有在列表中尚未添加时才添加它:

words = []
word = input("Word: ")
while word != '':
  if word not in words:
    words.append(word)
  word = input("Word: ")
print('You know', len(words), 'unique word(s)!')

您将在课程后期了解有关集合的更多信息(这是解决此问题的更有效方法)。