python,向列表中追加字典,被最后的值覆盖的问题解决办法

2021-01-14 03:12

阅读:469

标签:net   描述   details   覆盖   而不是   地址   blog   修改   for循环   

问题描述

用for 循环为空列表中,追加不同的列表值,完成后,总是显示最后一个列表值,而不是全部的值

原因

列表的append方法在为其添加数据的时候并没有将完整的字典数据都拷贝的列表当中(为了提高空间的使用率),
而是存储字典数据所在地址。
而以上这种方式修改的是该内存地址下的数据,这就导致了问题。

解决办法

将字典放在for循环内部,每次循环时,都会新建字典,然后追加记录,而不是放在循环外部。

for a in detail:
        patents_info = {
        ‘patent_id‘: ‘‘,
        ‘patent_summary‘: ‘‘,
        ‘patent_author‘: ‘‘,
    }
      

结果是[{‘a‘:‘1‘, ‘b‘:‘1‘},{‘a‘:‘2‘, ‘b‘:‘2‘}]

感谢:https://blog.csdn.net/Sheldomcooper/article/details/82258006

python,向列表中追加字典,被最后的值覆盖的问题解决办法

标签:net   描述   details   覆盖   而不是   地址   blog   修改   for循环   

原文地址:https://www.cnblogs.com/wangdaodao/p/12944062.html


评论


亲,登录后才可以留言!