我试图解决问题,但遇到了问题.
当我这样做:
arr=[[[0]*5]*5]
Run Code Online (Sandbox Code Playgroud)
我明白了:
[[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]]
Run Code Online (Sandbox Code Playgroud)
但是当我尝试选择一个元素时:
arr[0][0]
Run Code Online (Sandbox Code Playgroud)
它返回:
[0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
为什么?
只需移除外部[]:
arr=[[0]*5]*5
Run Code Online (Sandbox Code Playgroud)
但是,这是创建嵌套列表的不好方法.最好使用:
arr = [[0 for _ in range(5)] for _ in range(5)]
Run Code Online (Sandbox Code Playgroud)
这样你就不会被"共享参考问题"所困扰.