tfnmdmx 2021-07-27 13:42 采纳率: 83.3%
浏览 50
已结题

python,列表,字典,初始化或赋值问题,用循环给列表中的字典赋值,之后一个字典里的内容改变,其他都改变

我用循环进行列表初始化:

for i in range(1,8):    #周一到周日
    for jie in range(1,13): #第一小节到第十二小节
        dict[jie] = 0  
    # 把字典添加到列表中
    list.append(dict)

之后进行赋值时,所有的字典都变化:
比如 list[0][1]=5,我只赋值【0】【1】,但实际是【0】【1】、. 、【7】【1】都被改变了。

我想大概是地址的问题,但是我不知道怎么解决,我的问题就是要怎么初始化?

描述如果不清楚,请看图示:
初始化得:
[{1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
.
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}]
赋值 list[0][1]=5 后,得:
[{1: 5, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
{1: 5, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
.
{1: 5, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}]

  • 写回答

1条回答 默认 最新

  • Feng-licong 2021-07-27 13:46
    关注

    因为你list里面其实都是同一个对象

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错