将字典y合并到字典x中,若x中没有y中的key则x执行添加操作,若x中已有对应key则执行更新操作

merge(dict x , dict y)

若y==none 则直接返回x即可

若x==none,则将x复制y返回

若y!=none and x!=none ,则取出x keys以及y keys  遍历y的每一个key:

若ykey在xkeys中不存在,则在x中添加相应ykey以及相应value

若yKey在xkeys中存在:

若ykey在x中对应value不是dict,则直接更新value=y中ykey对应值即可

若ykey在x中对应value是dict,则递归调用 merge(dict  x[ykey], dict y[ykey])

代码如下:

def merge(x, y):#python中dict为引用传递#x==None 直接复制y返回if x==None:x = yreturn x#y==None 直接返回x即可    if y==None:return x#x,y都非空xkeys = list(x.keys())ykeys = list(y.keys())for yk in ykeys:#没有则进行添加if yk not in xkeys:x[yk] = y[yk]#存在该keyif yk in xkeys:#print (type(x[yk]).__name__)#该key对应value类性不为dict 则更新操作if type(x[yk]).__name__ != 'dict':x[yk] = y[yk]  #对应类型为dict则递归调用else:merge(x[yk], y[yk])return x

简化如下:

def merge2(x, y):#python中dict为引用传递#x==None 直接复制y返回if x==None:x = yreturn x#y==None 直接返回x即可    if y==None:return x#x,y都非空xkeys = list(x.keys())ykeys = list(y.keys())for yk in ykeys:                      if yk in xkeys and type(x[yk]).__name__ == 'dict':merge(x[yk], y[yk])else:x[yk] = y[yk]return x

0.边界条件的判断:

1.python中函数参数传递问题:

list dict为可变类型,函数传递相当于指针传递会改变原来的值

2. python中数据类型判断:

type(x[yk]).__name__ != 'dict'

3. python中dict字典应用:

查找:

更新以及新增:

删除:

算法18--合并两个字典相关推荐

  1. python合并两个字典的内容,使用update方法

    python合并两个字典的内容,使用update方法 update() 方法可使用一个字典所包含的键值对来更新己有的字典. 在执行 update() 方法时,如果被更新的字典中己包含对应的键值对,那么 ...

  2. python字典合并几种方式对比,Python合并两个字典的常用方法与效率比较

    本文实例讲述了Python合并两个字典的常用方法与效率比较.分享给大家供大家参考.具体分析如下: 下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试 #!/usr/bin/python ...

  3. 如何在一个表达式中合并两个字典?

    我有两个Python字典,我想编写一个返回合并的这两个字典的表达式. 如果update()方法返回其结果而不是就地修改dict,则将是我需要的方法. >>> x = {'a': 1, ...

  4. 【每日一算法】 合并两个有序链表

    微信改版,加星标不迷路! 每日一算法-合并两个有序链表 作者:阿广 阅读目录 1 题目 2 解析 1 题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. ...

  5. 【面试题】python怎么合并两个字典

    Python中将两个字典进行合并操作,是一个比较常见的问题.本文将介绍几种实现两个字典合并的方案,并对其进行比较. 对于这个问题,比较直观的想法是将两个字典做相加操作,赋值给结果字典,其代码为: [方 ...

  6. python中两个字典如何合并为一个_python怎么合并两个字典

    Python中将两个字典进行合并操作,是一个比较常见的问题.本文将介绍几种实现两个字典合并的方案,并对其进行比较. 对于这个问题,比较直观的想法是将两个字典做相加操作,赋值给结果字典,其代码为: py ...

  7. 两个数组合并排序python_python算法题---合并两个有序数组

    leetcode-python-合并两个有序数组 今天第一次电话面试,有点紧张,所以自己感觉表现的不是很好,面试过程中面试官问到了两个算法题,都是leecode上面的题目,而且我都做过,但是当时一下子 ...

  8. 算法:合并两个有序链表

    题目 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1- ...

  9. C语言算法题 合并两个数组并排序

    一.题目内容 给你两个集合,要求{A} + {B}. 注:同一个集合中不会有两个相同的元素. Input 每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示 ...

  10. 【每日一算法】合并两个有序数组

    每日一算法-搜索插入位置 题目 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...

最新文章

  1. 谷歌或被迫拆分Chrome浏览器,谁将会接盘?
  2. 如果只能通过IE写博客【Do we write blog just only with IE?】
  3. DataReader 要在事务提交前 CLOSE 掉 否则会报一个:已有打开的与此命令相关联的 DataReader,必须首先将它关闭。...
  4. volley 调用php接口,使用Volley发送帖子请求并使用PHP接收
  5. Quartz实现定时任务实例
  6. sap实施和开发哪个前景_2021年了!还不知道 SAP顾问的职业前景?
  7. java有几个关键字,Java多线程常用的几个关键字
  8. Flutter CupertinoSlidingSegmentedControl 分段组件使用解析
  9. 51CTO博客首页看到我了
  10. UI设计素材|字体的重要性
  11. php显示网络图片,PHP在服务器端怎么显示图片呢?
  12. 甲骨文终获Java编程语言版权
  13. 数据库文档 SCREW 一键生成数据库文档
  14. 系统——现有centos7操作系统制作为iso镜像文件
  15. r语言员工离职_离职员工预测--python
  16. Java发送短信验证码
  17. Kivy教程之 08 倒计时App实现timer调用(教程含源码)
  18. LTU、TTU、DTU、FTU、RTU在电路中的安装位置,功能,区别
  19. 神兽保佑,永无bug!
  20. OpenFlow1.0协议解析

热门文章

  1. Java语言运行机制及运行过程
  2. 电子学会C语言一级模拟题:收集瓶盖赢大奖
  3. [tyvj2054] 四叶草魔杖 (最小生成树 状压dp)
  4. 【华唯鑫能油】矿物油、合成油的相关常识
  5. 如何管理好电脑中的个人资料
  6. JAVA常用数据库连接池
  7. Windows下Redis集群搭建
  8. STM32——看门狗
  9. 非知名猎头Henry 和你谈-高薪是怎么跳出来的?
  10. linux rz工具怎么用,Linux rz命令怎么使用