Étant donné deux listes:
x = [1,2,3]
y = [4,5,6]
Quelle est la syntaxe pour:
x
dans y
de sorte que y
ressemble maintenant à [1, 2, 3, [4, 5, 6]]
?x
dans y
de sorte que y
ressemble maintenant à [1, 2, 3, 4, 5, 6]
?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]
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]
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]
Vous pouvez aussi simplement faire ...
x += y
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]
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[:])