[PYTHON] Soyez prudent lors de l'ajout d'un tableau à un tableau

Je ne savais pas que ...

JavaScript

const data_list = [];
let data = [];
data[0] = 0;
data[1] = 1;
data[2] = 2;
data_list.push(data);
console.log('data:', data); // [0, 1, 2]
console.log('data_list:', data_list); // [[0, 1, 2]]

// data = [];
data[0] = 3;
data[1] = 4;
data[2] = 5;
data_list.push(data);
console.log('data:', data); // [3, 4, 5]
console.log('data_list:', data_list); // [[3, 4, 5], [3, 4, 5]]

Python

data_list = []
data = [0, 0, 0]
data[0] = 0
data[1] = 1
data[2] = 2
data_list.append(data)
print ('data: ', data) # [0, 1, 2]
print ('data_list: ', data_list) # [[0, 1, 2]]

# data = [0, 0, 0]
data[0] = 3
data[1] = 4
data[2] = 5
data_list.append(data)
print ('data: ', data) # [3, 4, 5]
print ('data_list: ', data_list) # [[3, 4, 5], [3, 4, 5]]

Si vous y réfléchissez, cela semble évident, mais comme les adresses du tableau ajouté la première fois et le tableau ajouté la deuxième fois sont les mêmes, elles auront la même valeur au moment où elles seront référencées. Afin de sortir le résultat attendu «[[0, 1, 2], [3, 4, 5]]», il est nécessaire d'initialiser le tableau à un moment approprié.

N'écrasez pas le contenu du tableau en arrêtant de penser. Même si vous utilisez un langage de script, faites attention à la mémoire lorsque vous utilisez des tableaux.

Au fait, j'ai enterré les données qui étaient censées être collectées dans l'expérience par cette méthode dans le noir (pleurer) (stupide)

Recommended Posts

Soyez prudent lors de l'ajout d'un tableau à un tableau
Soyez prudent lorsque vous attribuez une série en tant que colonne aux pandas.
Paramètres lors de l'ajout d'un disque dur sous Linux
Soyez prudent lorsque vous exécutez CakePHP3 avec PHP7.2
[Mémo Python] Soyez prudent lors de la création d'un tableau à deux dimensions (liste de listes)
Faites attention au type lorsque vous créez un masque d'image avec Numpy
Ajouter des lignes à un tableau vide avec numpy
Je veux être OREMO avec setParam!
Soyez prudent lorsque vous travaillez avec des fichiers texte compressés au format gzip
Soyez prudent lors de la différenciation des vecteurs propres d'une matrice
Soyez prudent lors de la lecture de données avec des pandas (spécifiez dtype)
Convertir dict en tableau
Créez un tableau à deux dimensions en ajoutant une ligne à la fin d'un tableau vide avec numpy
Comment convertir un tableau en dictionnaire avec Python [Application]
Comment échanger des éléments dans un tableau en Python et comment inverser un tableau.
Enregistrement des actions à entreprendre lorsque google_image_download ne peut pas être utilisé
Problèmes de caractères déformés lors de l'impression d'un tableau contenant une chaîne contenant utf-8
Configuré pour redémarrer automatiquement lorsque Tomcat déclenche une OutOfMemoryError
Que faire lorsqu'une erreur se produit avec import _ssl
Comment doi peut-il être utile lorsque vous demandez comment écrire du code?
Je voulais calculer un tableau avec la méthode des subs de Sympy
(Note) Points auxquels il faut être accro lors de l'installation de Scilab sur ArchLinux
[Introduction à Udemy Python3 + Application] 51. Soyez prudent avec les arguments par défaut
Comment éliminer le "Les balises doivent être un tableau de hachages." Erreur dans l'API qiita