Comment puis-je copier le contenu d'une liste et pas seulement une référence à la liste en Python?listes en python, avec références
Répondre
Utilisez une notation de tranche.
newlist = oldlist
Cela assignera un deuxième nom à la même liste
newlist = oldlist[:]
Cela reproduira chaque élément de oldlist dans une nouvelle liste complète appelée newlist
en plus la notation de tranche mentionnée par Lizard,
y ous pouvez utiliser list()
newlist = list(oldlist)
ou copier
import copy
newlist = copy.copy(oldlist)
Les answes par Lizard et gnibbler sont corrects, bien que je voudrais ajouter que tous ces moyens donnent une copie peu profonde, à savoir:
l = [[]]
l2 = l[:] // or list(l) or copy.copy(l)
l2[0].append(1)
assert l[0] == [1]
Pour une copie en profondeur, vous avez besoin de copy.deepcopy().
Regardez le copy
module, et notez la différence entre les copies superficielles et profondes:
La différence entre peu profonde et la copie profonde ne concerne que les objets composés (objets qui contiennent d'autres objets, comme des listes ou des instances de classe):
a copie superficielle construit un nouvel objet composé et ensuite (dans la mesure du possible) insère des références int o aux objets trouvés dans l'original.
Une copie profonde construit un nouvel objet composé puis, récursive, insère des copies en elle des objets trouvés dans l'original.
- 1. Références d'attributs en Python
- 2. Listes en Python
- 3. Référence circulaire avec listes python
- 4. en python, chapitre 8 (listes)
- 5. Liste des listes en python?
- 6. "Listes de tranches" et "l'ellipse" en Python; Tranches de listes et listes de listes avec listes de tranches
- 7. Comment convertir un tuple imbriqué de tuples et de listes en listes de listes en Python?
- 8. références Obtenir% def en python mako
- 9. Fusionner deux listes de listes - Python
- 10. Travailler avec itertools.product et les listes en python 3
- 11. Enchaînement de nombreuses listes en Python
- 12. Comparer deux éléments de listes en python
- 13. comparant deux listes en python dictionnaire
- 14. Python: Dictionnaire de listes de listes
- 15. Recherche Python dans les listes de listes
- 16. Références du sous-package Python
- 17. Comparaison de listes Python
- 18. Comment créer des listes imbriquées en python?
- 19. tri tuples dans les listes en python
- 20. Combinaison de 2 listes en python
- 21. Copie de listes 2D en python
- 22. Combinaison de dictionnaires de listes en Python
- 23. fusionner des listes triées en python
- 24. comment concaténer des listes en python?
- 25. permutations de deux listes en python
- 26. Python comparant deux listes
- 27. Python Listes Débutant
- 28. Python: comparaison de listes
- 29. listes Python Ajoutant retour
- 30. Python -Intersection de plusieurs listes?
Notez que cela ne concerne que les conteneurs de données mutables. Une liste de tuples contenant des nombres entiers ne tire aucun bénéfice de copy.deepcopy, contrairement à une liste avec une autre liste. – nmichaels