check ob alle Elemente in einer Liste identisch sind
Ich brauche die folgende Funktion:
Eingan: einlist
Ausgab:
True
wenn alle Elemente in der Eingabeliste mit dem Standard-Gleichheitsoperator als gleich ausgewertet werden;False
AndernfallsPerformanc: natürlich ziehe ich es vor, keinen unnötigen Overhead zu verursachen.
Ich denke, es wäre am besten,
Durchsuche die Liste angrenzende Elemente vergleichenundAND
Alle resultierenden Booleschen WerteAber ich bin mir nicht sicher, was der pythonischste Weg ist, das zu tun.
BEARBEITE:
Vielen Dank für all die tollen Antworten. Ich habe mehrere Bewertungen erhalten, und es war wirklich schwierig, zwischen @KennyTM- und @Ivo van der Wijk-Lösungen zu wählen.
Die fehlende Kurzschlussfunktion schadet nur bei langen Eingängen (über 50 Elemente), die zu Beginn ungleiche Elemente aufweisen. Wenn dies oft genug vorkommt (wie oft es von der Länge der Listen abhängt), ist ein Kurzschluss erforderlich. Der beste Kurzschlussalgorithmus scheint @KennyTM @ zu secheckEqual1
. Es zahlt sich jedoch ein erheblicher Aufwand dafür aus:
Wenn die langen Eingänge mit frühen ungleichen Elementen nicht (oder nur selten) vorkommen, ist kein Kurzschluss erforderlich. Dann ist @Ivo van der Wijk die mit Abstand schnellste Lösung.