


Pourquoi la modification de \'vec\' change-t-elle également \'v\' en Python ?
Listes et références : comprendre l'affectation des variables en Python
En Python, les variables qui font référence à des listes peuvent présenter un comportement inattendu. Considérez le code suivant :
<code class="python">v = [0] * 9 vec = v # Assign v's address to vec vec[5] = 5 # Modify vec at index 5 print(v) # Also prints [0, 0, 0, 0, 0, 5, 0, 0, 0]</code>
Étonnamment, l'impression de 'v' montre qu'il a également été modifié. Ce comportement peut prêter à confusion au début.
Pourquoi 'v' change-t-il ?
La raison du changement de 'v' est que vec et v sont tous deux des références. Lorsque vous attribuez vec = v, vous ne créez pas de nouvelle liste. Au lieu de cela, vous attribuez simplement l'adresse de v, qui est un pointeur de mémoire, à vec.
En conséquence, vec et v pointent tous deux vers la même liste en mémoire. Toute modification apportée à l'une ou l'autre variable affectera la liste sous-jacente, c'est pourquoi « v » change également lorsque « vec » est modifié.
Création de listes séparées
Pour créer deux listes distinctes, vous devez effectuer une copie superficielle :
<code class="python">vec = list(v)</code>
Cela crée une nouvelle liste avec les mêmes valeurs que « v » mais la stocke dans un emplacement mémoire différent. Désormais, modifier 'vec' n'affectera pas 'v'.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Fastapi ...

Utilisation de Python dans Linux Terminal ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

À propos de Pythonasyncio ...

Comprendre la stratégie anti-rampe d'investissement.com, Beaucoup de gens essaient souvent de ramper les données d'actualités sur Investing.com (https://cn.investing.com/news/latest-news) ...

Chargement du fichier de cornichon dans Python 3.6 Erreur d'environnement: modulenotFounonError: NomoduLenamed ...

Discussion sur les raisons pour lesquelles les fichiers de pipelines ne peuvent pas être écrits lors de l'utilisation de robots scapisnels lors de l'apprentissage et de l'utilisation de Crawlers scapides pour un stockage de données persistant, vous pouvez rencontrer des fichiers de pipeline ...
