python update函数(20)

在前一篇文章  python ChainMap中我们介绍了关于python内置函数 ChainMap的使用,ChainMap函数和update函数类似,都是对字典操作,也是将多个字典合并,那么问题来了?ChainMap和update两者区别在哪呢?

一.update简介

python 字典(Dictionary) update() 函数把字典dict的键/值对更新到另外一个dict里。

dict1= {"a":"zhangsan","b":"lisi"}
dict2= {"c":"wangwu"}

# 合并字典
dict2.update(dict1)
print(dict2)

输出结果:

{‘c‘: ‘wangwu‘, ‘a‘: ‘zhangsan‘, ‘b‘: ‘lisi‘}

二.update和ChainMap区别

1.内置函数ChainMap函数对多个字典合并时,合并的结果内存地址并没有发生改变,当我们修改ChainMap函数返回的结果时,会发现原始字典的数据也会发生相同的变化;当我修改原始字典时,ChainMap函数返回的结果也会跟随一起变化,这也意味着:ChainMap函数返回的结果和原始字典共用一块内存地址。

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com

@File:python_chainmap.py
@Time:2019/11/22 21:25

@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 字典dict

2.python ChainMap

3.python 字典推导式

4.python 匿名函数lambda

5.python 异常try except

转载请注明:猿说Python » python update

技术交流、商务合作请直接联系博主

扫码或搜索:猿说python

猿说python

微信公众号 扫一扫关注

原文地址:https://www.cnblogs.com/shuopython/p/12106716.html

时间: 2024-11-01 23:46:45

python update函数(20)的相关文章

python基础-函数_递归_内置函数

一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量与全局变量 六 前向引用之'函数即变量' 七 嵌套函数 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一.数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域

python的函数

一 函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定

python之函数用法locals()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法locals() #locals() #说明:查找局部变量,返回一个名字/值对的字典对象.只具备查找权限 ''' locals(...) locals() -> dictionary Update and return a dictionary containing the current scope's local variables. ''' #案例 def test(): na

python 调用函数

Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html#abs 也可以在交互式命令行通过help(abs)查看abs函数的帮助信息. 调用abs函数: >>> abs(100) 100 >>> abs(-20) 20 >>> abs(1

从C#到Python —— 3 函数及函数编程

在C#中没有独立的函数存在,只有类的(动态或静态)方法这一概念,它指的是类中用于执行计算或其它行为的成员.在Python中,你可以使用类似C#的方式定义类的动态或静态成员方法,因为它与C#一样支持完全的面向对象编程.你也可以用过程式编程的方式来编写Python程序,这时Python中的函数与类可以没有任何关系,类似C语言定义和使用函数的方式.此外,Python还支持函数式编程,虽然它对函数式编程的支持不如LISP等语言那样完备,但适当使用还是可以提高我们工作的效率. 本章主要介绍在过程编程模式下

Python回调函数用法实例详解

本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 二.什么是回调: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步调用.同步调用

Python的'函数指针'的使用

其实Python是不存在指针这一个说法的,更不用说是函数指针了,但是也有相应的处理方式. 我这里使用这一个函数指针,其实也是为了代码的简洁以及扩展性,也就是说还是可以用其他的方式来实现其所需要实现的功能的. 遇到的情况是:有一个Status状态,当其为1的时候,需要执行函数A, 为2的时候需要执行函数B....如果可取的值很多的时候会比较麻烦. 常用的解决方法就是直接if...elif..elif....使用若干个这样的条件语句进行处理(因为Python也没有switch语句.....) 而遇到

Python的函数一

一.函数的定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().可以自己创建函数,这被叫做用户自定义函数. 函数定义的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明. 函数内容以冒号起始,并且缩进. return [表达式]

Python 全栈开发四 python基础 函数

一.函数的基本语法和特性 函数的定义 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. python中函数的分类 内置函数 自定义函数 特性: 减少重复代码 使程序有更好的扩展性 让程序更容易维护 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆