Python si estendono con un elenco di bug vuota? [duplicare]
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]
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