Python3
中初始化一个多维数组,通过for range
方法。以初始化二维数组举例:
>>> test = [[ 0 for i in range(2)] for j in range(3)]
>>> test
[[0, 0], [0, 0], [0, 0]]
初始一个一维数组,可以使用*
>>> test = [ 0 for i in range(3)]
>>> test
[0, 0, 0]
但是,用*
初始化二维数组则会在修改数组内容时出现错误,第二个*
把一维数组连续复制,如:
>>> test = [[0]*2]*3
>>> test
[[0, 0], [0, 0], [0, 0]]
>>> test[0][0] = 1
>>> test
[[1, 0], [1, 0], [1, 0]]
而使用 for range
初始化不会产生该问题:
>>> test = [[ 0 for i in range(2)] for j in range(3)]
>>> test
[[0, 0], [0, 0], [0, 0]]
>>> test[0][0] = 1
>>> test
[[1, 0], [0, 0], [0, 0]]