sto lottando con questo strano comportamento in Python (2 e 3):Strano linea assegnazione
>>> a = [1, 2]
>>> a[a.index(1)], a[a.index(2)] = 2, 1
Questo si traduce in:
>>> a
[1, 2]
Ma se si scrive
>>> a = [1, 2]
>>> a[a.index(1)], a[a.index(2)] = x, y
dove x, y != 2, 1
(può essere 1, 1
, 2, 2
, 3, 5
, ecc.), Ciò risulta in:
>>> a == [x, y]
True
Come ci si aspetterebbe. Perché lonon produce il risultato a == [2, 1]
?
>>> a == [2, 1]
False
Hai fatto una strana domanda. Perché dovrei 'a [a.index (1)], a [a.index (2)] = 2, 1' stampare qualcosa? :) – Alik
Intendo quando si richiede il valore di a. Sto abusando della notazione. XD – Dargor
Correlati (e subdoli): http://stackoverflow.com/q/32127908/3001761 – jonrsharpe