Python update 函数

ChatGPT 3.5 国内中文镜像站免费使用啦

零基础 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 函数每次只能合并一个字典!


三.猜你喜欢

  1. Python 字符串/列表/元组/字典之间的相互转换
  2. Python 局部变量和全局变量
  3. Python type 函数和 isinstance 函数区别
  4. Python is 和 == 区别
  5. Python 可变数据类型和不可变数据类型
  6. Python 浅拷贝和深拷贝
  7. Python 递归函数
  8. Python sys模块
  9. Python 列表list
  10. Python 元组tuple
  11. Python 字典 dict
  12. Python 条件推导式
  13. Python 列表推导式
  14. Python 字典推导式
  15. Python 函数声明和调用
  16. Python 不定长参数 *argc/**kargcs

ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容