Domanda

    

Questa domanda ha già una risposta qui:

         

Perché Python 2.5.2 ha il seguente comportamento

>>>[2].extend([]) == [2]
False

>>> [2].extend([]) == None
True

$ python --version
Python 2.5.2

Presumo non ci sto capendo qualcosa qui, ma intuitivamente mi piacerebbe pensare che [2] .extend ([]) dovrebbe produrre [2]

È stato utile?

Soluzione

Extend è un metodo di elenco, che lo modifica ma non ritorna self (ritornando None invece). Se è necessario il valore modificato come valore dell'espressione, utilizzare +, come in [2]+[].

Altri suggerimenti

Esattamente.

>>> x = [2]
>>> x.extend([]) # Nothing is printed because the return value is None
>>> x == [2]
True
>>> x
[2]

Lo fanno apposta in modo che vi ricorderete che la funzione di estendere è effettivamente modificare l'elenco sul posto. Stessa cosa con sort (). Si ritorna sempre Nessuno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top