Ich habe eine Scrabble Herausforderung und haben die folgende Liste von Buchstaben:Suche Liste von Wörtern in Scrabble mit leeren Kachel Python
letters = ['t', 'u', 'v', 'w', 'x', 'y', 'z']
Und folgende Liste von Wörtern:
word = ['apple', 'whisky', 'yutz', 'xray', 'tux', 'zebra']
Hier ist die Code ich verwende die Worte zu finden, die für eine gegebene Liste der Buchstaben gemacht werden können:
def valid_word(word, letters):
available_letters = letters[:]
candidate = True
for letter in word:
if letter not in available_letters:
candidate = False
else:
available_letters.remove(letter)
if candidate == True:
return candidate
Es gibt mir die Ausgabe, dass zwei Wörter 'yutz' und 'tux' für die aktuelle Liste der Buchstaben gemacht werden können. in der Liste der Buchstaben mit leeren bezeichnet als '_'
in der Liste
Meine Herausforderung ist was passiert, wenn wir eine des Brief ersetzen. Zum Beispiel 't'
wird durch '_'
unten ersetzt:
letters = ['_', 'u', 'v', 'w', 'x', 'y', 'z']
Wie kann die gleichen Worte zu finden ‚yutz‘ Code noch in der Lage sein und ‚tux‘, aber die fehlende Buchstaben ersetzen? Die erwartete Ausgabe ist 'yu_z' und '_ux'.
UPDATE:
Hier ist der Code, den ich versuchte, die nicht vollständig funktioniert aber irgendwie geben Richtung, wohin ich gehe:
rack_list = []
for letter in letters:
if letter in string.ascii_lowercase:
rack_list.append(letter)
else:
blank_count = user_input.count("_")
def valid_word(word, rack):
available_letters = rack_list[:]
missed_counter = 0
for letter in word:
if letter in available_letters:
available_letters.remove(letter)
else:
missed_counter += 1
if missed_counter <= blank_count:
for i in word:
if i in available_letters:
word += i
else:
word += "_"
return word
Bitte beachten Sie die Buchungsrichtlinien. Dieses Problem unterscheidet sich von dem ursprünglichen Problem. Es sollte eine separate Frage sein. Vor allem haben Sie die Gültigkeit der Antworten auf Ihre ursprüngliche Frage wesentlich geändert. – Prune
Incremental "Bitte helfen Sie mir" ist für einen Tutor, nicht Stack Overflow geeignet. – Prune
@Prune Danke, ich habe die Frage als abgeschlossen markiert. – Hannan