Come aggiungere più valori a un elenco in Python


175

Sto cercando di capire come aggiungere più valori a un elenco in Python. So che ci sono alcuni metodi per farlo, come inserire manualmente i valori, o pur l'operazione di accodamento in un forciclo, o appende extendfunzioni.

Tuttavia, mi chiedo se esiste un modo più accurato per farlo? Forse un determinato pacchetto o funzione?


8
Hai già trovato la documentazione dell'elenco ?
Martijn Pieters

5
Hai detto che sai che ci sono alcuni metodi per farlo , ma non mostrare ciò che hai provato o spiegare perché i metodi che conosci già non sono abbastanza buoni.
Inutile

Si prega di definire più pulito diextend() .
Frédéric Hamidi,

3
@ FrédéricHamidi more neat == additional package dependency, ovviamente!
hexparrot,

1
In che modo questa domanda può essere considerata off-topic?
Victor Schröder il

Risposte:


352

È possibile utilizzare il metodo sequenzalist.extend per estendere l'elenco di più valori da qualsiasi tipo di iterabile, sia esso un altro elenco o qualsiasi altra cosa che fornisce una sequenza di valori.

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Quindi puoi usare list.append()per aggiungere un singolo valore e list.extend()per aggiungere più valori.


1
Un po 'complicato introdurre generatori a qualcuno il primo giorno di utilizzo di Python.
Daniel Roseman,

1
@DanielRoseman Il mio punto è che i valori possono provenire da qualsiasi tipo di sequenza iterabile.
colpì il

6
Si noti che l'estensione non mantiene la struttura dell'elemento aggiunto rispetto append(). Con il tuo esempio usando append, otterrai [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia

1
@YohanObadia Se fosse il caso di Python 3 nel '17, non è più il caso: Python 3.7.7 fa esattamente ciò che descrivono.
Post169,

28

Oltre alla appendfunzione, se per "valori multipli" intendi un altro elenco, puoi semplicemente concatenarli in questo modo.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]

9

Se si dà un'occhiata ai documenti ufficiali , vedrete proprio sotto append, extend. Questo è quello che stai cercando.

C'è anche itertools.chainse sei più interessato a un'iterazione efficiente che a finire con una struttura di dati completamente popolata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.