2
我明白我的問題來自哪裏,我根本不知道如何解決它。列表項在列表中的多個項目中發生更改
for x in listoflists:
if x[1] == [1,0]:
q=[0, 0]
for z in range(5):
q[z] = x[:]
q[z][1] = [0,1]
q[z][0][-1] = q[z][0][-1] * 1.25
print(id(q[z][0][-1]))
list.append(q)
我所試圖做的是:
- 進入一些數據,我已經收集,並在那裏我有交換數據標籤從
[1,0]
到[0,1]
- 副本然後進入零指數並將價格列乘以某個因子來放大。
我現在所擁有的是將所有先前的值更改爲我想要的最後一個值。
我知道這是與Python處理列表作爲參考。
我不得不將第一行改爲x
來減輕這一點,但我不知道如何避開我特別索引列表項的部分,因爲它顯示id
爲兩個不同的存儲空間。
我所看到的所有解決方案都顯示列表解析,但我不知道這是如何適用於我的情況,因爲它似乎像我的z索引工作正常,他們都有單獨的內存ID。
描述是很難遵循的,具有輸入和預期結果/輸出的MCVE對於試圖理解你想要的行爲的人來說會創造奇蹟。 – timgeb
問題是'x [:]'做了'x'的淺拷貝。你需要做一個深層複製,以便複製下一個層次。 – Barmar