Frage

Ich bin sehr neu in Python, wie Sie sehen werden.

Wenn ich eine Liste habe:

a = [1,2,3,2,1]

Dies ergibt true:

a == a[::-1]

... aber dies ergibt false:

a == a.reverse()

Warum ist das so?

War es hilfreich?

Lösung

weil .reverse() die Liste an Ort und Stelle umkehrt und keine zurückgibt:

>>> print a.reverse()
None

und a == None werden zu False ausgewertet.

Andere Tipps

a.reverse() hat keinen Rückgabewert, daher ist der Vergleich a== Keine das ist falsch

können Sie überprüfen mit:

>>> str(a.reversed())
'None'

noch besser:

>>> (id(a.reverse()), id(None))

Sie sehen dieselben Adressen

Wenn Sie eine neue Kopie der Liste wünschen, verwenden Sie stattdessen reverse ().

a == list(reversed(a))

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top