2016-09-27 10 views
0

ich den folgenden Code verwenden zu prüfen, ob alle Elemente in einer Liste sind die gleiche:Python: überprüfen, ob alle Elemente der gleiche in einer Liste

def sameItem(myList): 
    return all(x==myList[0] for x in myList) 

jedoch in meinem Testfall:

myL1 = ['dog','cat','dog'] 
sameItem(myL1) 

gibt True zurück. Sollte es nicht falsch sein? Oder hatte ich einen Fehler in der sameItem() Funktion?

Auch ich benutze Jupyter Notebook, könnte es irgendein Problem in diesem Szenario verursachen?

Danke!

+0

Ja. der erste Punkt ist "Hund" und der zweite Punkt "Katze" ist nicht gleich "Hund". Sollte es nicht False zurückgeben? – Edamame

+0

Nicht reproduzieren. Es gibt False für mich – Li357

+0

verwenden Sie auch Python 2.7? – Edamame

Antwort

1

Ihre Methode sollte korrekt sein und funktioniert für mich. Als Alternative können Sie versuchen, diese Methode zu überprüfen, die eine Zeile ist, die das gleiche tut

return myList[1:] == myList[:-1] 
+0

Das funktioniert für mich. Darf ich fragen, was es bedeutet? Danke – Edamame

+0

'myList [1:]' gibt eine Liste aller Elemente in der Liste mit Ausnahme der ersten zurück. 'myList [: - 1]' gibt eine Liste aller Elemente in der Liste mit Ausnahme der letzten zurück. Sie können es in einem Python-Interpreter ausprobieren, um ein Gefühl für die Indizierung zu bekommen. Wenn das funktioniert, würde es Ihnen etwas ausmachen, die Antwort als richtig zu markieren? Auf diese Weise wird bekannt sein, dass das Problem gelöst wurde. Vielen Dank! – user3543300

Verwandte Themen