python - 在python中创建二维数组的两种方法
问题描述
以下两种在python中创建二维数组的方法有什么区别?
def arrays(row, column):
myList = [[None]*column for i in range(row)]
def arrays(row, column):
myList = [[None]*column]*row
解决方案
在第一种情况下,使用单独的指针来存储您的子列表。
在第二种情况下,使用相同的指针。所以改变一个的值也会改变其他的。
这是一个说明性示例:-
def arrays1(row, column):
return [[None]*column for i in range(row)]
def arrays2(row, column):
return [[None]*column]*row
x = arrays1(2, 2)
y = arrays2(2, 2)
x[0][0] = 1
y[0][0] = 1
print(x) # [[1, None], [None, None]]
print(y) # [[1, None], [1, None]]