繁体   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