2013-01-13 13 views
6

Sto leggendo Dive into Python 3 e nella sezione delle liste, l'autore afferma che è possibile concatenare elenchi con l'operatore "+" o chiamare il metodo extend(). Sono gli stessi solo due modi diversi per fare l'operazione? Qualche ragione dovrei usare l'una o l'altra?Concatenazione di elenchi in Python 3

>>> a_list = a_list + [2.0, 3] 
>>> a_list.extend([2.0, 3]) 
+2

sovrascritto L'operatore '+' dà il risultato in un'altra lista, non è un'aggiunta sul posto. Considerando che, l'estensione è una modifica sul posto della lista .. L'utilizzo dovrebbe essere principalmente sulla tua logica, e probabilmente sulla dimensione del tuo elenco ... –

risposta

12

a_list.extend(b_list) modifica a_list in luogo. a_list = a_list + b_list crea un nuovo elenco, quindi lo salva nel nome a_list. Si noti che a_list += b_list deve essere esattamente uguale alla versione extend.

Utilizzando extend o += è probabilmente un po 'più veloce, dal momento che non ha bisogno di creare un nuovo oggetto, ma se c'è un altro riferimento a a_list intorno, il suo valore sarà cambiato troppo (che può o non può essere desiderabile).