簡體   English   中英

如何在保持參考原始 Python 的同時更改列表的順序

[英]How to change the order of a list while keeping reference to the original Python

我正在創建一個數獨求解器,為了便於訪問,我想要多個引用相同元素的列表。 我創建了一個名為 grid 的嵌套列表,然后用一個名為 rows 的列表引用它。 更改行將更改網格。 現在我想創建另一個列表,它也將“與行和網格一起動態更新”,但具有不同的嵌套結構(cols[i][j] = grid[j][i])

rows = grid
cols = [[rows[i][j] for i in range(9)] for j in range(9)]
blocks = [[rows[l//3*3+k//3][l % 3*3+k % 3]
           for k in range(9)] for l in range(9)]
rows[0][0] = [10] 
cols[1][1] = [5]

grid[0][0] 將是 [10] 但現在我希望 cols,blocks[0][0] 也是 [10] 並且 grid,cols,blocks,rows[1][1] 是 [5] ] 這不起作用。 為什么列表的元素:列和塊不引用列表行和網格的元素?

使用切片分配,以便您更新列表,而不是創建對新列表的引用。

rows[0][0][:] = [10]
cols[1][1][:] = [5]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM