问题描述

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

原因

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

解决办法

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

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

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