【发布时间】:2020-05-31 05:48:09
【问题描述】:
a=[[None]*3]
a=a*3
k=0
for i in range(3):
for j in range(3):
a[i][j]=k
print(a)
k=k+1
print(a)
我希望输出为 [[0,1,2],[3,4,5],[6,7,8]]。我得到了什么 是 [[6,7,8],[6,7,8],[6,7,8]]
【问题讨论】:
-
这个
a=[[None]*3]为您提供了对同一列表的三个引用。当您更改一个时,您将全部更改。 -
@MarkMeyer 我认为问题出在
a=a*3。[None]*3部分应该没问题。 -
是的@glitch,你是对的。基本上它克隆了三个变量引用。如果你想到一个指针,它指向 a 的相同引用。
-
对@gilch。我的错。
标签: python python-3.x list nonetype