cdsn_Python 2022-08-24 14:37 采纳率: 69%
浏览 42
已结题

关于列表修改的一个问题

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

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

问题相关代码,请勿粘贴截图
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]]]

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

  • 写回答

6条回答 默认 最新

  • CSDN专家-link 2022-08-24 15:02
    关注

    list定义方式不太合适

    list = [[[0]] *4 for _ in range(4)]
    for i in range(4):
        list[i][0] = [i]
    print(list)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 9月1日
  • 已采纳回答 8月24日
  • 创建了问题 8月24日