web-dev-qa-db-fra.com

Quelle est la syntaxe pour insérer une liste dans une autre liste en python?

Étant donné deux listes:

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

Quelle est la syntaxe pour:

  1. Insérez x dans y de sorte que y ressemble maintenant à [1, 2, 3, [4, 5, 6]]?
  2. Insérez tous les éléments de x dans y de sorte que y ressemble maintenant à [1, 2, 3, 4, 5, 6]?
172
Compuser7

Voulez-vous dire append?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x.append(y)
>>> x
[1, 2, 3, [4, 5, 6]]

Ou fusionner?

>>> 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] 
332
Paolo Bergantino

La question ne précise pas exactement ce que vous voulez réaliser.

List a la méthode append, qui ajoute son argument à la liste:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]

Il y a aussi la méthode extend, qui ajoute items à partir de la liste que vous transmettez en tant qu'argument:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]

Et bien sûr, il y a la méthode insert qui agit de la même manière que append mais vous permet de spécifier le point d'insertion:

>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]

Pour étendre une liste à un point d'insertion spécifique, vous pouvez utiliser le découpage de liste (merci, @florisla):

>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]

Le découpage de liste est assez flexible car il permet de remplacer une plage d'entrées dans une liste par une plage d'entrées d'une autre liste:

>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]
66
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

30
Coding District

Vous pouvez aussi simplement faire ...

x += y
3
user3707850

Si vous souhaitez ajouter les éléments d'une liste (list2) à la fin d'une autre liste (list), vous pouvez utiliser la méthode list extend.

list = [1, 2, 3]
list2 = [4, 5, 6]
list.extend(list2)
print list
[1, 2, 3, 4, 5, 6]

Ou si vous voulez concaténer deux listes, vous pouvez utiliser le signe +

list3 = list + list2
print list3
[1, 2, 3, 4, 5, 6]
2
squal

Si nous ne faisons que x.append(y), y est référencé dans x de telle sorte que toute modification apportée à y affectera également x ajouté. Donc, si nous devons insérer uniquement des éléments, nous devrions procéder comme suit:

x = [1,2,3] y = [4,5,6] x.append(y[:])

0
Raj Stha