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?


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.


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]

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.