Testen von Benutzereingaben gegen eine Liste in Python

Ich muss testen, ob die Benutzereingabe die gleiche ist wie ein Element einer Liste, gerade jetzt mache ich das:

cars = ("red", "yellow", "blue") guess = str(input()) if guess == cars[1] or guess == cars[2]: print("success!") 

Aber ich arbeite mit größeren Listen und meine if-Anweisung wächst viel mit all diesen Schecks, gibt es einen Weg, um mehrere Indizes so etwas wie:

 if guess == cars[1] or cars[2] 

oder

 if guess == cars[1,2,3] 

Das Lesen der Listen Docs sah ich, dass es unmöglich ist, mehr als einen Index zu verweisen, wie ich es oben versucht habe und natürlich, dass ein Syntaxfehler sendet.

4 Solutions collect form web for “Testen von Benutzereingaben gegen eine Liste in Python”

Der einfachste Weg ist:

 if guess in cars: ... 

Aber wenn deine Liste riesig war, wäre das langsam. Sie sollten dann speichern Sie Ihre Liste der Autos in einem Satz:

 cars_set = set(cars) .... if guess in cars_set: ... 

Überprüfen, ob etwas vorhanden ist, ist ein Satz ist viel schneller als zu überprüfen, ob es in einer Liste ist (aber das wird nur ein Problem, wenn Sie viele viele Artikel haben, und Sie machen die Prüfung mehrmals.)

(Bearbeiten: Ich gehe davon aus, dass die Unterlassung von cars[0] aus dem Code in der Frage ist ein Unfall.Wenn es nicht ist, dann verwenden cars[1:] anstelle von cars .)

Verwenden Sie guess in cars zu testen, ob guess ist gleich ein Element in cars :

 cars = ("red","yellow","blue") guess = str(input()) if guess in cars: print ("success!") 

Einsatz in :

 if guess in cars: print( 'success!' ) 

Siehe auch die möglichen Operationen nach Sequenztyp, wie in der offiziellen Dokumentation dokumentiert .

@Sean Hobbs: Zuerst musst du dem Variablenindex einen Wert zuordnen.

 index = 0 

Vielleicht möchten Sie verwenden, während True, um die Endlosschleife zu erstellen, also würde Ihr Code so sein:

 while True: champ = input("Guess a champion: ") champ = str(champ) found_champ = False for i in listC: if champ == i: found_champ = True if found_champ: print("Correct") else: print("Incorrect") 
Python ist die beste Programmiersprache der Welt.