我正在写一个单词不公平的程序。这是我的代码:
import collections
sortedWords = collections.defaultdict(list)
with open("/xxx/xxx/words.txt", "r") as f:
for word in f:
word = word.strip().lower()
sortFword = ''.join(sorted(word))
sortedWords[sortFword].append(word)
while True:
jumble = input("Enter your jumbled word:").lower()
sortedJumble = ''.join(sorted(jumble))
if sortedJumble in sortedWords:
words = sortedWords[sortedJumble]
if len(words) > 1:
print ("Your words are: ")
print ("\n".join(words))
else:
print ("Your word is", words[0]+".")
break
else:
print ("Oops, it can not be unjumbled.")
break
现在这些代码工作了。但是,我的程序通常打印两个相同的单词。例如,我输入" prisng"作为一个混乱的词,然后我得到两个"春天" s。这是因为在word文档中有两个" spring" s:#34; spring"而另一个是" Spring"。我想删除words.txt的所有重复项,但是如何删除它们?请给我一些建议。
答案 0 :(得分:1)
您可以使用内置set
功能执行此操作。
words = ['hi', 'Hi']
words = list(map(lambda x: x.lower(), words)) # makes all the words lowercase
words = list(set(words)) # removes all duplicates