[Python] Chapitre 04-04 Diverses structures de données (voir liste)

[Python] Chapitre 04-04 Reportez-vous à la liste

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.

Référence d'objet

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.

image.png

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.

image.png

** 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.

image.png

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".

À propos des expressions pour les futures variables

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".

Collecte des ordures

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 **.

finalement

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.

Revenir à [Lien de la table des matières]

Recommended Posts

[Python] Chapitre 04-04 Diverses structures de données (voir liste)
[Python] Chapitre 04-03 Diverses structures de données (liste multidimensionnelle)
[Python] Chapitre 04-02 Diverses structures de données (manipulation de liste)
[Python] Chapitre 04-06 Différentes structures de données (création de dictionnaire)
[Python] Chapitre 04-07 Diverses structures de données (manipulation de dictionnaire)
[Python] Chapitre 04-01 Différentes structures de données (création de liste et récupération d'éléments)
[Python] Chapitre 04-05 Diverses structures de données (création de taple et fonctionnalités)
[Python] [Supplément] Chapitre 04-08 Diverses structures de données (création et manipulation d'ensembles)
[Python] [Supplément] Chapitre 04-09 Structures de données diverses (théorie des ensembles et arithmétique dans les ensembles)
Python pour l'analyse des données Chapitre 4
Python pour l'analyse des données Chapitre 2
Python pour l'analyse des données Chapitre 3
Structure de données Python apprise avec la chimioinfomatique
[Python] liste
Application de Python: visualisation de données Partie 3: divers graphiques
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.1-8.2.5)
Livre Ali en python: Sec.2-4, structure de données
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.3-8.3.6.1)
Structure de données Python et implémentation interne ~ Liste ~
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
[Python] Divers traitements de données utilisant le tableau Numpy
bases de python: liste
[python] Créer une liste de différents types de caractères
# 3 [python3] Divers opérateurs
Python> Compréhension / Notation inclusive> Compréhension de liste
Application de Python: Traitement des données Partie 2: Analyse de divers formats de données
Manipulation de liste Python
[python] Lecture de données
Liste des bibliothèques Python pour les data scientists et les data ingénieurs
Liste du code Python utilisé dans l'analyse de Big Data
[Livre technique] Introduction à l'analyse de données avec Python -1 Chapitre Introduction-
Liste triée en Python
Exercice Python 2 - Notation d'inclusion de liste
Analyse de données avec python 2
Liste des modules python
Python> liste> extend () ou + =
Bibliothèques de visualisation de données Python
Présentation de l'analyse de données python
Vitesse de notation d'inclusion de liste en Python
Liste de filtres en Python
liste assertXXX unittest python
Divers outils de visualisation Python
Nettoyage des données à l'aide de Python
Mémo de type Liste / Dictionnaire Python3
[Mémo] Tri de liste Python3
Liste des API Python pour OpenCV3
Liste des erreurs Python (japonais)
La chose semblable à une recherche de liste en Python
Modèle d'analyse de données Python
[Tutoriel Python] Structure des données
[Python] Tri des données Numpy
[Python] Chapitre 01-01 À propos de Python (First Python)
Analyse de données avec Python
Liste des classes d'exception Python
Divers traitements de Python
Initialiser la liste avec python
[Python] Il peut être utile de lister les trames de données
Différentes façons de calculer la similitude entre les données avec python