¿Cuál es la sintaxis para insertar una lista en otra lista en Python? [duplicar]
Dadas dos listas:
x = [1,2,3]
y = [4,5,6]
¿Cuál es la sintaxis para:
- Insertar
x
eny
tal quey
ahora se vea como[1, 2, 3, [4, 5, 6]]
? - Inserte todos los elementos de
x
taly
manera quey
ahora se vea como[1, 2, 3, 4, 5, 6]
?
Aceptado
Quieres decir append
?
>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x.append(y)
>>> x
[1, 2, 3, [4, 5, 6]]
¿O fusionarse?
>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x + y
[1, 2, 3, 4, 5, 6]
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6]
La pregunta no deja claro qué es exactamente lo que quiere lograr.
La lista tiene el append
método, que agrega su argumento a la lista:
>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]
También está el extend
método, que agrega elementos de la lista que pasas como argumento:
>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]
Y, por supuesto, existe el insert
método que actúa de manera similar append
pero le permite especificar el punto de inserción:
>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]
Para ampliar una lista en un punto de inserción específico, puede utilizar la división de listas (gracias, @florisla):
>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]
La división de listas es bastante flexible ya que permite reemplazar un rango de entradas en una lista con un rango de entradas de otra lista:
>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]
foo = [1, 2, 3]
bar = [4, 5, 6]
foo.append(bar) --> [1, 2, 3, [4, 5, 6]]
foo.extend(bar) --> [1, 2, 3, 4, 5, 6]
http://docs.python.org/tutorial/datastructures.html