这是我目前的代码:
words = []
word = input('Word: ')
while word != '':
words.append(word)
word = input('Word: ')
print("You know "+ str(len(words)), "unique word(s)!")
这就是我需要的:
Word:聊天
Word:Chien
Word:聊天
字:Escargot
字:
你知道3个独特的单词!
不应该计算任何重复的单词。我不确定如何避免这种情况。因为我做了除此之外的所有其他事情。有一个简单的方法,但只是一个简单的方法吗?
答案 0 :(得分:4)
使用words
运算符检查单词是否已在in
列表中:
words = []
word = input('Word: ')
while word != '':
if word not in words:
words.append(word)
word = input('Word: ')
print("You know "+ str(len(words)), "unique word(s)!")
这样可以很好地进行,但是对于列表,成员资格测试是 O(n)。
考虑使用set
来加快查找速度。
它将由set.add
方法隐式执行(“将元素添加到集合。如果元素已经存在,则无效。”)
:
words = set()
word = input('Word: ')
while word != '':
words.add(word)
word = input('Word: ')
print("You know "+ str(len(words)), "unique word(s)!")
请注意,字符串格式化是更好(更简单)格式化输出的方法:
print("You know "+ str(len(words)), "unique word(s)!")
可以
print("You know {} unique word(s)!".format(len(words)))