我正在尝试在Python中初始化多维数组:
SIZE=3
onedimarray=[None]*SIZE
for i in range(0,SIZE):
onedimarray[i]="{0:d}".format(i)
print(onedimarray)
multdimarray=[[None]*SIZE]*SIZE
for i in range(0,SIZE):
for j in range(0,SIZE):
multdimarray[i][j]="{0:d},{1:d}".format(i,j)
print(multdimarray)
此代码运行时打印:
['0', '1', '2']
[['2,0', '2,1', '2,2'], ['2,0', '2,1', '2,2'], ['2,0', '2,1', '2,2']]
因此在一维情况下,*运算符正确初始化了数组。在多维情况下,阵列的每一行都是相同的。
我是Python的新手,并不理解这种行为。谁能解释一下发生了什么?