Python update 函式 - Python零基礎入門教程
阿新 • • 發佈:2021-07-09
目錄
零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門
在前一篇文章 **Python ChainMap **中我們介紹了關於 Python 內建函式 ChainMap 使用,ChainMap 函式和 update 函式類似,都是對字典 dict 操作,也是將多個字典 dict 合併,那麼問題來了?ChainMap 和 update 兩者區別在哪呢?
一.Python update 函式簡介
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說程式設計 @Blog(個人部落格地址): www.codersrc.com @File:Python update 函式.py @Time:2021/04/04 11:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累! """ dict1= {"a":"zhangsan","b":"lisi"} dict2= {"c":"wangwu"} # 合併字典 dict2.update(dict1) print(dict2) ''' 輸出結果: {'c': 'wangwu', 'a': 'zhangsan', 'b': 'lisi'} '''
二.Python update 函式和 ChainMap 函式區別
1.內建函式 ChainMap 函式對多個字典合併時,合併的結果記憶體地址並沒有發生改變,當我們修改 ChainMap 函式返回的結果時,會發現原始字典 dict 的資料也會發生相同的變化;當我修改原始字典時,ChainMap 函式返回的結果也會跟隨一起變化,這也意味著:ChainMap 函式返回的結果和原始字典共用一塊記憶體地址。
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說程式設計 @Blog(個人部落格地址): www.codersrc.com @File:Python update 函式.py @Time:2021/04/04 11:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累! """ from collections import ChainMap dict1= {"a":"zhangsan","b":"lisi"} dict2= {"c":"wangwu"} # 合併字典 new_dict = ChainMap(dict1,dict2) print(new_dict) print("***"*20) # 修改資料 new_dict.maps[0]["a"] = "123" print(new_dict) print(dict1) ''' 輸出結果: ChainMap({'a': 'zhangsan', 'b': 'lisi'}, {'c': 'wangwu'}) ************************************************************ ChainMap({'a': '123', 'b': 'lisi'}, {'c': 'wangwu'}) {'a': '123', 'b': 'lisi'} '''
2.update 函式將原始字典 dict 的鍵/值對更新到另外一個目標字典 dict 裡,合併之後原始字典 dict 和目標字典都是獨立的記憶體塊,兩者互不影響!
3.ChainMap 函式可以同時合併多個字典,update 函式每次只能合併一個字典!
三.猜你喜歡
- Python 字串/列表/元組/字典之間的相互轉換
- Python 區域性變數和全域性變數
- Python type 函式和 isinstance 函式區別
- Python is 和 == 區別
- Python 可變資料型別和不可變資料型別
- Python 淺拷貝和深拷貝
- Python 遞迴函式
- Python sys 模組
- Python 列表 list
- Python 元組 tuple
- Python 字典 dict
- Python 條件推導式
- Python 列表推導式
- Python 字典推導式
- Python 函式宣告和呼叫
- Python 不定長引數 *argc/**kargcs
未經允許不得轉載:猿說程式設計 » Python update 函式
本文由部落格 - 猿說程式設計 猿說程式設計 釋出!