Chargement...

Copier

bag.copy() prend les valeurs qui sont dans bag à cet instant et les met dans une liste neuve. Pour l'instant bag contient tea, puis water, donc la liste neuve contient tea, puis water. Le nom other est cette liste neuve. other n'est pas bag.

Avant tout remplacement, la place 0 de other est tea et la place 1 est water. La longueur est 2. La copie est l'image de cet instant. Elle ne surveille plus bag ensuite.

bag[0] = "soup" met soup à la place de tea seulement dans bag. other commence encore par tea, et water reste à la place 1 des deux listes. Les deux longueurs restent 2. La copie ne reçoit pas ce remplacement plus tardif.

soup n'entre pas dans la copie

python
bag = ["tea", "water"]
other = bag.copy()
bag[0] = "soup"

print(bag)
print(other)

La première ligne est soup, puis water. La seconde est tea, puis water. soup n'est que dans bag. tea est encore en tête de other. print écrit chaque liste avec ses crochets, pour voir les deux listes l'une à côté de l'autre.

Dans l'autre sens, c'est pareil. other[1] = "bread" mettrait bread seulement dans other. La place 1 de bag resterait water. Ce programme ne fait pas ce pas. Il ne change bag qu'après la copie.

bag[:] fabrique aussi une liste neuve avec les mêmes valeurs. C'est la tranche de toute la liste, et le résultat est séparé de bag. other = bag ne copie pas. Les deux noms sont la même liste, donc un remplacement plus tardif se voit sous les deux noms.

📊 Trois façons de l'écrire

Écriture Ce que vous obtenez
bag.copy() une liste neuve avec les valeurs de maintenant
bag[:] une liste neuve avec ces mêmes valeurs
other = bag pas une liste neuve ; les deux noms sont la même liste

Le nom qui ne garde pas tea

Si vous écrivez other = bag puis bag[0] = "soup", other montre soup lui aussi. Il n'y avait pas une seconde liste pour garder tea. Le programme ci-dessus utilise copy(), donc other garde tea, puis water.

La page suivante met des valeurs dans un ordre. Cette page ne réordonne pas. tea reste devant water dans other, parce que c'était l'ordre au moment de la copie. soup est en tête de bag seulement parce que vous avez remplacé la place 0 après la copie.

Ce qui est resté à part

  1. Qu'écrit le programme, la première ligne puis la seconde ?
  2. Après le programme, quelle est la première valeur de other ?
  3. Si vous mettez ensuite bread à la place 1 de other, que reste-t-il dans bag à la place 1 ?
  4. Que fait other = bag, que copy() ne fait pas ?

tea reste dans la copie

L'écran montre soup, puis water, puis tea, puis water. other commence encore par tea. Les deux longueurs sont 2. bread dans other laisserait water dans bag à la place 1. other = bag est une seule liste, soup se verrait donc sous les deux noms. bag[:] est une autre liste neuve avec les mêmes valeurs. La page suivante ordonne des valeurs. Elle ne fait pas cette copie.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
6
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut