目錄
零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門
在前一篇文章 **Python ChainMap **中我們介紹了關於 Python 內置函數 ChainMap 使用,ChainMap 函數和 update 函數類似,都是對字典 dict 操作,也是將多個字典 dict 合並,那么問題來了?ChainMap 和 update 兩者區別在哪呢?
一.Python update 函數簡介
Python 字典(Dictionary) update 函數把字典 dict 的鍵 / 值對更新到另外一個字典 dict 里。
# !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 函數
本文由博客 - 猿說編程 猿說編程 發布!
