¿Cuál es la sintaxis para insertar una lista en otra lista en Python? [duplicar]

Resuelto Soumya asked hace 14 años • 6 respuestas

Dadas dos listas:

x = [1,2,3]
y = [4,5,6]

¿Cuál es la sintaxis para:

  1. Insertar xen ytal que yahora se vea como [1, 2, 3, [4, 5, 6]]?
  2. Inserte todos los elementos de xtal ymanera que yahora se vea como [1, 2, 3, 4, 5, 6]?
Soumya avatar Sep 20 '10 07:09 Soumya
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] 
Paolo Bergantino avatar Sep 20 '2010 00:09 Paolo Bergantino

La pregunta no deja claro qué es exactamente lo que quiere lograr.

La lista tiene el appendmé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 extendmé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 insertmétodo que actúa de manera similar appendpero 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]
Sergey avatar Sep 20 '2010 00:09 Sergey
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

Coding District avatar Sep 20 '2010 00:09 Coding District