关于列表修改的一个问题

问题遇到的现象和发生背景

做列表的时候初始化每个小列表的第一项的时候,发现有些问题

问题相关代码,请勿粘贴截图
list=[[[0]]*4]*4
for i in range(4):
    list[i][0]=[i]
print(list)

运行结果及报错内容
[[[3], [0], [0], [0]], [[3], [0], [0], [0]], [[3], [0], [0], [0]], [[3], [0], [0], [0]]]

我想要达到的结果

想要做到

[[[0], [0], [0], [0]], [[1], [0], [0], [0]], [[2], [0], [0], [0]], [[3], [0], [0], [0]]]

的效果,但是四个小列表的第一项总是一起改变,希望能说一下为啥

list定义方式不太合适

list = [[[0]] *4 for _ in range(4)]
for i in range(4):
    list[i][0] = [i]
print(list)

为啥要弄三维数组?你这个结构的话二维数据就满足了

python中[0 ]* n与[0 for _ in range(n)]是有区别的:
https://blog.csdn.net/weixin_42042056/article/details/106738462

list改一下

1、直接写
list = [[[0], [0], [0], [0]], [[0], [0], [0], [0]], [[0], [0], [0], [0]], [[0], [0], [0], [0]]]
2、循环遍历写多次
list = [[[0]] * 4 for i in range(4)] // 这里的i,后续可用也可不用


可以看下python参考手册中的 python- 列表您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632