Ich erstelle ein Hangman-Programm, und ich habe die list()
Funktion verwendet, um das Wort in eine Liste zu verwandeln, in der jeder Buchstabe ein eigenes Element ist. Wenn der Benutzer Buchstaben als Vermutungen eingibt, möchte ich, dass der Buchstabe aus der Liste gelöscht wird. Ich habe versucht, die list.remove(obj)
Funktion und es funktioniert nicht als wenn ich in die Shell den Namen der Liste eingeben, keine Buchstaben wurden gelöscht.Element löscht nicht aus Liste
wordList=list(word) letter=input("please enter a letter") if len(letter)>1: print('invalid input, you may only enter one letter at a time') elif letter.isalpha(): if letter in letters: print('you have already entered this letter') else: letters.append(letter) if any(letter in s for s in wordList,): print(letter,"is in the word") wordList.remove(letter)
Nach Länge bearbeitet. Irgendwelche Ideen, warum die Buchstaben nicht von wordList
entfernt werden?
Ich kann nicht reproduzieren. Dein Code entfernt Buchstaben aus 'wordList', wenn ich deinen Code ausführe. – davedwards
Hinweis: Wenn sich ein Buchstabe mehr als einmal in "wordList" befindet, entfernt 'wordList.remove (letter)' nur die erste Instanz. (zB wenn 'word =" hallo "' dann 'wordList' wird' ['h', 'e', 'l', 'l', 'o'] ', und wenn' letter = 'l'', nach dem Ausführen von 'wordlist.remove (letter)' wird 'wordlist' '['h', 'e', 'l', 'o']', was bedeutet, dass "l'" immer noch in "wordList" wäre '.) Sie wären wahrscheinlich besser dran mit einem Set dafür. – 3D1T0R