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 爬取豆瓣电影相关处理
  • ¥15 手机淘宝抓清除消息接口
  • ¥15 C#无selenium
  • ¥15 LD衰减计算的结果过大
  • ¥15 用机器学习方法帮助保险公司预测哪些是欺诈行为
  • ¥15 计算300m以内的LD衰减
  • ¥15 数据爬取,python
  • ¥15 怎么看 cst中一个面的功率分布图,请说明详细步骤。类似下图
  • ¥15 为什么我的pycharm无法用pyqt6的QtWebEngine
  • ¥15 FOR循环语句显示查询超过300S错误怎么办