Cómo agregar múltiples valores a una lista en Python
Estoy intentando descubrir cómo agregar varios valores a una lista en Python. Sé que existen algunos métodos para hacerlo, como ingresar los valores manualmente, poner la operación de agregar en un for
bucle o las funciones append
y extend
.
Sin embargo, me pregunto si hay una manera más clara de hacerlo. ¿Quizás un determinado paquete o función?
Puede usar el método de secuencialist.extend
para extender la lista con múltiples valores de 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 utilizar list.append()
para agregar un solo valor y list.extend()
agregar varios valores.
Aparte de la append
función, si por "valores múltiples" te refieres a otra lista, simplemente puedes concatenarlos así.
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
Si echas un vistazo a los documentos oficiales , verás justo debajo append
. extend
Eso es lo que buscas.
También existe itertools.chain
la posibilidad de que esté más interesado en una iteración eficiente que en terminar con una estructura de datos completamente poblada.
Otra solución es descomprimir ambas listas dentro de una nueva lista y asignarla nuevamente a la copia de la lista original:
my_list[:] = [*my_list, *new_items]
Un ejemplo:
my_list = [1, 2]
new_items = [3, 4, 5]
my_list[:] = [*my_list, *new_items]
my_list # [1, 2, 3, 4, 5]
o asignar a una porción vacía como en la respuesta de Saumya Prasad (pero al final de la lista):
length = len(my_list)
my_list[length:length] = new_items
my_list # [1, 2, 3, 4, 5]
Vale la pena señalar que list.extend
la asignación de un segmento a un segmento vacío modifica la lista en el lugar, mientras que itertools.chain
el desempaquetado o +
el operador crean una nueva lista.