ユーザーが入力した単語のすべての文字がリスト内の別の単語に含まれているかどうかを確認するPythonプログラムを作成しています。したがって、たとえば、ユーザーが「メンフィス」と入力した場合、プログラムは同じ文字をすべて含む単語のリスト(「婉曲表現」、「メンバーシップ」、「謄写版」など)を印刷する必要があります。
wordList = ["blah", "blah", "blah"]
userWord = input("Enter a word to compare: ")
userLetters = list(userWord) #Converting user-inputted string to list of chars
matches = [] #Empty list for words that might match later.
for word in wordList:
mismatchCount = 0 #Setting/resetting count of clashes between words
wordLetters = list(word) #Converting word of comparison into list of chars
for letter in userLetters:
if letter in wordLetters:
userLetters.remove(letter) #Removing already-matched letters
wordLetters.remove(letter) #Removing already-matched letters
else:
mismatchCount += 1
if mismatchCount > 0:
continue #Mismatch--abandons word and moves to next
matches.append(word) #If word fails the above IF, it gets added to matches
print(matches)
問題は、単語の大きなリストにあるどの単語もテストに失敗していないことです。失敗するはずの単語でさえ、一致リストに追加されます。したがって、大きなリストと比較するために「メンフィス」と入力すると、リスト内のすべての単語が印刷されます。
何か案は?前もって感謝します。