Cómo agregar múltiples valores a una lista en Python

175

Estoy tratando de descubrir cómo agregar múltiples valores a una lista en Python. Sé que hay pocos métodos para hacerlo, como entrada manualmente los valores, o pur la operación de anexión en un forbucle, o appendy extendfunciones.

Sin embargo, me pregunto si hay una manera más clara de hacerlo. Tal vez un determinado paquete o función?

ChangeMyName
fuente
8
¿Ya ha encontrado la documentación de la lista ?
Martijn Pieters
55
Dijiste que sabes que hay algunos métodos para hacerlo , pero no muestres lo que intentaste ni expliques por qué los métodos que ya sabes no son lo suficientemente buenos.
Inútil el
Defina más ordenado queextend() .
Frédéric Hamidi
3
@ FrédéricHamidi more neat == additional package dependency, por supuesto!
hexparrot el
1
¿Cómo se puede considerar esta pregunta fuera de tema?
Victor Schröder

Respuestas:

352

Puede usar el método de secuencialist.extend para extender la lista por múltiples valores desde cualquier tipo de iterable, ya sea otra lista o cualquier otra cosa que proporcione una secuencia de valores.

>>> 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]

Por lo tanto, puede usar list.append()para agregar un solo valor y list.extend()para agregar varios valores.

dar un toque
fuente
1
Un poco complicado presentarle generadores a alguien el día 1 de usar Python.
Daniel Roseman
1
@DanielRoseman Mi punto es que los valores pueden provenir de cualquier tipo de secuencia iterable.
empuje
66
Tenga en cuenta que extender no mantiene la estructura del elemento que agrega en comparación append(). Con su ejemplo usando append, obtendría [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia
1
@YohanObadia Si ese fue el caso de Python 3 en '17, ya no es el caso: Python 3.7.7 hace exactamente lo que se describe.
Post169
28

Aparte de la appendfunción, si por "valores múltiples" se refiere a otra lista, simplemente puede concatenarlos así.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
control deslizante
fuente
9

Si se echa un vistazo a los documentos oficiales , verá justo debajo append, extend. Eso es lo que estás buscando.

También hay itertools.chainsi está más interesado en una iteración eficiente que terminar con una estructura de datos completamente poblada.

Rayo Silas
fuente