2016-10-16 8 views
0

Ich versuche, eine Reihe früherer Benutzernamen in einem Spiel zu suchen, nach dem Benutzernamen, der derzeit vom Spieler verwendet wird (damit alle vorherigen Spielstände unter dem Benutzernamen angezeigt werden). Diese Liste wurde aus einer externen Textdatei importiert.Suche nach Elementen einer Liste

Hier könnte zum Beispiel der Benutzername "Jack" sein. Auch wenn mehrere Elemente in lis den Wert "Jack" haben (verifiziert, indem alle Werte der Liste über "print lis [x]" gedruckt werden), wird "ja" niemals gedruckt, um dies anzuzeigen.

Was läuft falsch?

+2

Versuchen Sie, die Rohwerte der Liste zu drucken; Wenn es aus einer Datei gelesen wird, besteht eine gute Chance, dass Sie 'Jack' mit' Jack \ n' vergleichen und das wird natürlich nicht passen. –

+0

Versuchen Sie, lis [x] .strip() aufzurufen, um den nachfolgenden Newline/Whitespace loszuwerden – rassar

+1

(sidenote) Sie können überprüfen, ob ein Objekt in einer Liste einfacher ist mit dem In-Schlüsselwort: 'if username in lis: print (" ja ")". Auch, wenn Sie planen, für diese Art von Sache viele Male zu überprüfen, ziehen Sie in Betracht, ein Set zu verwenden. – Bendik

Antwort

0

Try this formatiert sind:

for usernameTest in lis: 
    if username == usernameTest.strip(): 
     print "yes" 
    print lis[x] 
0
if username in lis: 

Sollte der Trick durch eine Liste der Suche

Wenn der Code, den Sie geschrieben haben, nicht funktioniert, prüfen Sie, ob die Saiten die gleiche Weise

if username.strip().lower() == lis[x].strip().lower(): 
+0

Das OP fragt keine Problemumgehung. –

0

Ich bin mir nicht sicher, ob es das ist, was Sie meinte, aber zumindest druckt ja:

lis = ["Jack","Rose", "Joe", "Franz"] 
username = "Joe" 
for x in range(0, len(lis)): 
if username == lis[x]: 
    print ("yes") 
Verwandte Themen