python,向列表中追加字典,被最后的值覆蓋的問題解決辦法


問題描述

用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM