零基础 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
ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容