Ici, je voudrais parler de "référence" dans le sens où je veux que vous connaissiez les caractéristiques de la liste, plutôt que d'expliquer de nouvelles connaissances.
Commençons par vérifier la référence. Entrez le code suivant dans la ** console Python **.
>>>Lx = [8, 6, 5, 9, 7]
>>>Ly = Lx
>>>Ly
[8, 6, 5, 9, 7]
Dans cet état, entrez le code suivant.
>>>Ly[4] = 1000
>>>Ly
[8, 6, 5, 9, 1000]
Je pense que vous pouvez comprendre jusqu'ici. En bref, la variable ** Lx ** se voit attribuer la liste [8, 6, 5, 9, 7], Ly est assigné, puis 1000 est assigné à Ly [4] pour obtenir le contenu. Confirmant. Bien sûr, si vous affichez Ly, ce sera [8, 6, 5, 9, ** 1000 **].
Maintenant, affichons ** Lx ** dans cet état. Ensuite, ce sera comme suit.
>>>Lx
[8, 6, 5, 9, 1000]
Vous devriez avoir changé les éléments de la liste ** Ly ** plus tôt, mais vous pouvez voir que ** Lx ** a également changé.
Je voudrais jeter un coup d'œil dans les coulisses.
Premier,
>>>Lx = [8, 6, 5, 9, 7]
Concernant, j'attribue une liste à Lx. L'important ici est le [Chapitre 02 "Variations"](https://qiita.com/ko0821/items/8355b4e192aa76a0e8ae#%E5%A4%89%E6%95%B0%E9%87%8D%E8% Comme je l'ai expliqué lors de A6% 81), j'ai mentionné que ** les variables sont des balises **.
Encore une fois, le marquage [8, 6, 5, 9, 7] dans la liste avec ** Lx ** est le même que celui expliqué dans le chapitre 02. La figure est la suivante.
Ensuite
>>>Ly = Lx
>>>Ly
[8, 6, 5, 9, 7]
Jetons un coup d'oeil à. Ici, concernant ** Ly = Lx **, lorsque cette affectation est faite, cela signifie que ** se réfère à ce à quoi se réfère la variable Lx, ainsi qu'à la variable Ly **.
Ensuite, je pense que cela peut être représenté dans la figure ci-dessous.
** Lx ** et ** Ly ** font ** référence à la même liste **. Par conséquent, lorsque Ly est émis, [8, 6, 5, 9, 7] est émis.
Puis dans cet état,
>>>Ly[4] = 1000
>>>Ly
[8, 6, 5, 9, 1000]
Cette section explique.
Puisque l'entité à laquelle Ly fait référence est [8, 6, 5, 9, 7], si Ly [4] = 1000, l'opération est pour l'entité [8, 6, 5, 9, 7]. , [8, 6, 5, 9, ** 1000 **].
Par conséquent, il peut être représenté par la figure suivante.
Dans un tel état, si vous saisissez ** Lx **,
>>>Lx
[8, 6, 5, 9, 1000]
Et puisque l'entité qui fait référence à ** Ly ** est la même que ** Lx **, le résultat de sortie de ** Lx ** changera également.
Non limité aux références de cette liste, des références apparaîtront à divers endroits à l'avenir. Elle est communément appelée ** référence d'objet **.
(*) </ font> Ceux qui maîtrisent le langage Java peuvent être familiers avec ce concept de référence. Je pense que la même chose s'est produite dans "array".
Jusqu'à présent, nous avons expliqué avec "affectation" comme "attribuer une valeur à une variable appelée ** x **". A partir de maintenant, nous utiliserons des expressions telles que "variable ** x ** fait référence à une entité (objet)" et "variable ** x ** indique".
Jusqu'à présent, les variables ** Lx ** et ** Ly ** faisaient référence à la liste (objet), et en s'y référant, le contenu de la liste réelle pouvait être confirmé.
Maintenant, avec la situation ci-dessus à l'esprit, entrez le code suivant à partir de la ** console Python **.
>>>Lx = 10
>>>Ly = ['Japan', 'Canada']
Ce que je veux dire ici, c'est ce qui arrive à la liste actuelle [8, 6, 5, 9, 1000].
Les variables ** Lx ** et ** Ly ** font référence à des entités différentes, de sorte que la liste des entités [8, 6, 5, 9, 1000] ne peut pas être atteinte.
Si cela reste tel quel, la mémoire de l'ordinateur sera pleine. Pour éviter cela, Python détermine qu'il s'agit de "données inutiles" et supprime la liste réelle [8, 6, 5, 9, 1000].
Cela s'appelle ** Garbage Collection **.
Cette fois, j'ai décrit les caractéristiques de la liste. Pour être honnête, je n'utilise pas de "référence" dans la pratique, mais c'est quelque chose que l'on peut trouver dans n'importe quel livre Python.
Si vous envisagez de choisir Python pour l'examen de base sur les technologies de l'information, il est probable qu'une question vous soit posée, alors assurez-vous de vous en souvenir.
Recommended Posts