Jeu de main Python (liste à deux dimensions)

Quel est cet article?

Prenons à nouveau note. J'ai fait une liste bidimensionnelle 3x3.

# Comme ça
print(tmp)
 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Donc, quand j'ai essayé de mettre "5" au milieu, c'est devenu comme ça. Pourquoi?

# Comme ça
tmp[1][1] = 5
print(tmp)
 [[0, 5, 0], [0, 5, 0], [0, 5, 0]]

Quoi ça···

Tendances et contre-mesures

C'était parce que je ne pensais pas profondément quand je l'ai fait.

# Mauvais exemple
tmp_ng =[[0] * 3] * 3
print(tmp_ng)
 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Très bien, OK! (* Pas OK ...)

# Exemple d'amélioration
tmp_ok = [[0] * 3 for _ in range(3)]
print(tmp_ok)
 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Cela ne change pas à ce stade, mais ... Ce sera comme ça.

tmp_ng[1][1] = 5
print(tmp_ng)
 [[0, 5, 0], [0, 5, 0], [0, 5, 0]]
tmp_ok[1][1] = 5
print(tmp_ok)
 [[0, 0, 0], [0, 5, 0], [0, 0, 0]]

Révéler (?)

>>> tmp_ok[0] == tmp_ok[2]
True
>>> tmp_ng[0] == tmp_ng[2]
True
>>> tmp_ok[0] is tmp_ok[2]
False
>>> tmp_ng[0] is tmp_ng[2]
True

Dans un mauvais exemple, l'objet (?) [0] * 3 créé par new (en C #) est positionné à 3 endroits. En d'autres termes, un tableau est créé dans lequel la variable est définie une fois et l'emplacement alloué en mémoire est référencé trois fois. Par conséquent, un type de valeur apparaît à trois endroits. Cependant, dans l'exemple d'amélioration, [0] * 3 est nouveau (en C #) chaque fois que le for _ in range (3) est tourné 3 fois. Puisque la mémoire est sécurisée 3 fois, chacun peut avoir une valeur différente.

Je vois. .. ..

Vous ne pouvez pas dire que vous pouvez écrire Python à moins de reconnaître naturellement la signification de chaque caractère littéral, en particulier la commande de contrôle ...

Recommended Posts

Jeu de main Python (liste à deux dimensions)
Jeu de main Python (division)
[Python] liste
Jeu de main Python (code minimum argparse)
Jeu à la main Python (Pandas / DataFrame début)
bases de python: liste
Jeu de main Python (calculé plein de mordred)
Jeu de main Python (calcul du descripteur: version sérieuse)
Jouer Python async
Jouez avec 2016-Python
Python> Compréhension / Notation inclusive> Compréhension de liste
Manipulation de liste Python
Jeu à la main en Python (commençons avec AtCoder?)
Jeu à la main en Python (notation sur une ligne de if)
Jeu manuel Python (interopérabilité entre CSV et PostgreSQL)
Liste triée en Python
Exercice Python 2 - Notation d'inclusion de liste
Liste des modules python
Python> liste> extend () ou + =
Vitesse de notation d'inclusion de liste en Python
Liste de filtres en Python
liste assertXXX unittest python
Jouez à YouTube en 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
Liste des classes d'exception Python
Initialiser la liste avec python
Python hand play (obtenir les noms de colonnes à partir du fichier CSV)
Jouez le MV de Python Skusta pour la première fois en continu - Faites défiler la liste des chansons -
Liste Python, pour instruction, dictionnaire
Résumé des opérations de liste Python3
[Python] Convertir la liste en Pandas [Pandas]
[Python] Comment utiliser la liste 1
Création de liste de tâches [Python Django]
Spécifier plusieurs index de liste (Python)
Cours de base Python (5 List Taple)
La liste Python n'est pas une liste
[Python] Jouez avec le Webhook de Discord.
[Python] Copie d'une liste multidimensionnelle
[Introduction à Python] <liste> [modifier le 22/02/2020]
Liste Python et tapples et virgules
Paiza Python Primer 4: Notions de base sur les listes
Notation et générateur d'inclusion de liste Python
[Python / PyQ] 4. liste, pour instruction
#List Python pour les super débutants
Obtenir des éléments de liste en Python
Jeu manuel Python (calcul du descripteur RDKit: SDF en CSV à l'aide de Pandas)
Extraire plusieurs doublons de liste en Python
Différence entre list () et [] en Python
[python] Gérer les fonctions dans une liste
Sortie de la liste du vendredi Premium 2017 en Python
Convertir la liste en DataFrame avec python
Jouons avec Excel avec Python [Débutant]
[Python débutant] Divisez une liste (5 lignes).
python / Créer un dict à partir d'une liste.
Python> liste> Convertir une double liste en une seule liste
[Python] Comment utiliser la liste 3 Ajouté