为什么数组元素中的值发生了变化



我的代码从a[0][0]到a[0][3]的列表值已经更改,但我不确定为什么。。。

代码:

inputBin = list(input("Enter a binary number (max. 8 bits): "))
a = [[0] * 4] * 2

for j in range(2):
for i in range(4):
a[j][i] = int(inputBin[(2 * j) ** 2 + i])
print("a[", j,"][",i,"] = ", a[j][i])
for j in range(2):
for i in range(4):
print("a[",j,"][",i,"] = ",a[j][i])

输出

Enter a binary number (max. 8 bits): 11000011
a[ 0 ][ 0 ] =  1
a[ 0 ][ 1 ] =  1
a[ 0 ][ 2 ] =  0
a[ 0 ][ 3 ] =  0
a[ 1 ][ 0 ] =  0
a[ 1 ][ 1 ] =  0
a[ 1 ][ 2 ] =  1
a[ 1 ][ 3 ] =  1
a[ 0 ][ 0 ] =  0
a[ 0 ][ 1 ] =  0
a[ 0 ][ 2 ] =  1
a[ 0 ][ 3 ] =  1
a[ 1 ][ 0 ] =  0
a[ 1 ][ 1 ] =  0
a[ 1 ][ 2 ] =  1
a[ 1 ][ 3 ] =  1

请注意,底部的[0][0]到[0][3]与顶部不同。

输出图片

休耕行a = [[0] * 4] * 2将创建一个包含2个引用的内部列表,您可以使用:

a = [[0] * 4 for _ in range(2)] 

相关内容

最新更新