计算列表中的唯一元素

Nat*_*han -2 python

我的问题是让用户一次输入一个世界,看看用户知道多少个独特的世界(重复的单​​词不算数),例如

Word: Chat
Word: Chien
Word: Chat
Word: Escargot
Word: 
You know 3 unique word(s)!
Run Code Online (Sandbox Code Playgroud)

以下是我现在所拥有的:

count = 0
listword = []
word = input("Word: ")
while word != "":
    for i in listword:
            if i != word:
            listword.append(word)
        count += 1
    word = input("Word: ")
print("You know "+count+"unique word(s)!")
Run Code Online (Sandbox Code Playgroud)

但是输出是这样的:

Word: hello
Word: hi
Word: hat
Word: 
You know  0  unique word(s)!
Run Code Online (Sandbox Code Playgroud)

如何调整我的代码,为什么计数仍然 =0?

Fre*_*son 5

问题是它listword最初是空的,除非输入的单词与 中已有的单词不匹配,否则不会添加任何内容listword。如果在listword.

你可以用 a 做到这一点list,但 aset会更有效:

listword = set()
word = input("Word: ")
while word.strip() != "":
    if word not in listword:
        listword.add(word)
    word = input("Word: ")
print("You know", len(listword), "unique word(s)!")
Run Code Online (Sandbox Code Playgroud)