Points à garder à l'esprit lors de la copie de listes Python

introduction

Notez les précautions à prendre lors de la copie de listes en Python. Pour plus de détails, veuillez rechercher «passer par valeur / passer par référence».

Faites attention

Regardez le code ci-dessous avant de l'expliquer avec des mots.

X = 2
Y = X
Y = 5
print('Y = ', Y)
print('X = ', X)

Si vous faites cela, bien sûr

Y =  5
X =  2

Le résultat est obtenu. Ensuite, essayez d'exécuter le code suivant.

i = [1, 2, 3, 4, 5]
j = i
j[0] = 100
print('j = ', j)
print('i = ', i)

Ici, une liste appelée i est décidée, i est affecté à j, la valeur du numéro d'index 0 de j est fixée à 100, et i et j sont émis respectivement. Le résultat est

j =  [100, 2, 3, 4, 5]
i =  [100, 2, 3, 4, 5]

Et j'ai aussi changé. La cause de ceci peut être confirmée par le code suivant.

print(id(X))
print(id(Y))
print(id(i))
print(id(j))
4436251808
4436251904
4304286176
4304286176

Il s'avère que X et Y avec les valeurs assignées ont des identifiants différents, tandis que i et j avec la liste assignée ont le même identifiant. Par conséquent, dans la liste, les modifications apportées à j seront également reflétées dans i. Par conséquent, lors de la copie de la liste,

j = i.copy()

finalement

J'ai entendu dire que vous copiez rarement des listes, donc je ne pense pas que vous les utiliserez très souvent, mais faites attention à ne pas générer de bogues.

Recommended Posts

Points à garder à l'esprit lors de la copie de listes Python
Points à garder à l'esprit lors du développement d'un robot d'exploration en Python
Points à garder à l'esprit lors du traitement des chaînes en Python2
Points à garder à l'esprit lors du traitement des chaînes en Python 3
Précautions lors de l'utilisation de Python avec AtCoder
Choses à garder à l'esprit lors de l'utilisation de cgi avec python.
Points à garder à l'esprit lors de l'utilisation de Python pour ceux qui utilisent MATLAB
Points à garder à l'esprit lors de la création d'outils automatisés pour l'atelier en Python
Points à garder à l'esprit lors de la conversion d'un vecteur de ligne en vecteur de colonne avec ndarray
Choses à noter lors de l'initialisation d'une liste en Python
Points à garder à l'esprit lors de la prédiction par lots avec GCP ML Engine
Choses à surveiller lors de l'utilisation d'arguments par défaut en Python
Résumé des points à garder à l'esprit lors de l'écriture d'un programme qui s'exécute sur Python 2.5
Erreur lors de la tentative d'installation de psycopg2 en Python
Comment quitter lors de l'utilisation de Python dans Terminal (Mac)
Je veux faire quelque chose avec Python à la fin
Pour vider stdout en Python
Connectez-vous au site Web en Python
Attention lorsque os.mkdir en Python
Parler avec Python [synthèse vocale]
Comment développer en Python
Publier sur Slack en Python
Méthode d'écriture pratique lors de l'ajout continu à la liste en Python
Que faire lorsque "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" apparaît en Python
[Sous-processus] Lorsque vous souhaitez exécuter un autre programme Python en code Python
Comment ne pas échapper au japonais en traitant avec JSON en Python
Précautions lors de l'utilisation de Pit avec Python
Points à prendre en compte lors de l'attribution d'un nom au routage dynamique dans nuxt.js
Convertir Markdown en PDF en Python
Comment collecter des images en Python
Comment utiliser SQLite en Python
Dans la commande python, python pointe vers python3.8
Spécification du fuseau horaire lors de la conversion d'une chaîne de caractères en type datetime avec python
[Python] Lorsque vous souhaitez utiliser toutes les variables dans un autre fichier
Essayez de calculer Trace en Python
Précautions lors du passage de def aux fonctions triées et groupby en Python? ??
Atom: Remarque pour l'erreur d'indentation lors de la copie du script Python dans le shell
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
6 façons d'enchaîner des objets en Python
Comment utiliser PubChem avec Python
Articles à lire lorsque le code de script Python de Blender ne fonctionne pas dans 2.80
Que faire lorsque ModuleNotFoundError: Aucun module nommé'XXX 'ne se produit en Python
Précautions lors de l'attribution de valeurs par défaut aux arguments dans les définitions de fonctions Python
Comment gérer le japonais avec Python
Une alternative à `pause` en Python
Que faire lorsque le type de valeur est ambigu en Python?
Lors de l'utilisation d'expressions régulières en Python
Lors de l'écriture d'un programme en Python
Points à surveiller lors de la création d'un environnement Python sur un Mac
Comment masquer l'invite de commande lors de l'exécution de python dans Visual Studio 2015
Comment écrire une chaîne de caractères lorsqu'il y a plusieurs lignes en python
J'ai essayé d'implémenter PLSA en Python
[Introduction à Python] Comment utiliser la classe en Python?
Essayez de vous connecter à qiita avec Python
Installez Pyaudio pour lire des vagues en python
J'ai essayé d'implémenter la permutation en Python
Méthode pour créer un environnement Python dans Xcode 6
Comment définir dynamiquement des variables en Python