gpt4 book ai didi

python - 如何更改列表的顺序,同时保留对原始 Python 的引用

转载 作者:行者123 更新时间:2023-12-01 00:22:03 24 4
gpt4 key购买 nike

我正在创建一个数独求解器,为了便于访问,我想要多个引用相同元素的列表。我创建了一个名为 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],这是行不通的。为什么列表的元素:列和 block 不引用列表行和网格的元素?

最佳答案

使用切片分配,以便就地更新列表,而不是创建对新列表的引用。

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

关于python - 如何更改列表的顺序,同时保留对原始 Python 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58892061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com