Das wusste ich nicht...
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]]
Wenn Sie darüber nachdenken, scheint es offensichtlich, aber da die Adressen des Arrays, das beim ersten Mal hinzugefügt wurde, und des Arrays, das beim zweiten Mal hinzugefügt wurde, gleich sind, haben sie zum Zeitpunkt der Referenzierung denselben Wert. Um das erwartete Ergebnis "[[0, 1, 2], [3, 4, 5]]" auszugeben, muss das Array zu einem geeigneten Zeitpunkt initialisiert werden.
Überschreiben Sie den Inhalt des Arrays nicht, indem Sie aufhören zu denken. Auch wenn Sie eine Skriptsprache verwenden, sollten Sie beim Umgang mit Arrays auf den Speicher achten.
Übrigens habe ich die Daten, die mit dieser Methode im Experiment gesammelt werden sollten, im Dunkeln vergraben (weinen) (dumm)
Recommended Posts