python,如何给二维数组编号?


a = [[0] * 4] * 4
id = 0
for i in range(4):
    for j in range(4):
        a[i][j] = copy.deepcopy(id)
        id += 1
print(a)

实际输出:
[[12, 13, 14, 15], [12, 13, 14, 15], [12, 13, 14, 15], [12, 13, 14, 15]]
我希望的输出:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]

似乎是你数组的引用出了问题。
查看这份链接。
https://www.cnblogs.com/woshare/p/5823303.html https://www.cnblogs.com/woshare/p/5823303.html

使用[[0]*4*4]这种方式会导致,数组中的内部数组指向同一个数组
而且deepcopy也不是这么用的