本节书摘来自异步社区《Python Cookbook(第3版)中文版》一书中的第1章,第1.9节,作者[美]David Beazley , Brian K.Jones,陈舸 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.9 在两个字典中寻找相同点

1.9.1 问题

有两个字典,我们想找出它们中间可能相同的地方(相同的键、相同的值等)。

1.9.2 解决方案

考虑如下两个字典:

a = {'x' : 1,'y' : 2,'z' : 3
}b = {'w' : 10,'x' : 11,'y' : 2
}

要找出这两个字典中的相同之处,只需通过keys()或者items()方法执行常见的集合操作即可。例如:

# Find keys in common
a.keys() & b.keys() # { 'x', 'y' }# Find keys in a that are not in b
a.keys() - b.keys() # { 'z' }# Find (key,value) pairs in common
a.items() & b.items() # { ('y', 2) }

这些类型的操作也可用来修改或过滤掉字典中的内容。例如,假设想创建一个新的字典,其中会去掉某些键。下面是使用了字典推导式的代码示例:

# Make a new dictionary with certain keys removed
c = {key:a[key] for key in a.keys() - {'z', 'w'}}
# c is {'x': 1, 'y': 2}

1.9.3 讨论

字典就是一系列键和值之间的映射集合。字典的keys()方法会返回keys-view对象,其中暴露了所有的键。关于字典的键有一个很少有人知道的特性,那就是它们也支持常见的集合操作,比如求并集、交集和差集。因此,如果需要对字典的键做常见的集合操作,那么就能直接使用keys-view对象而不必先将它们转化为集合。

字典的items()方法返回由(key,value)对组成的items-view对象。这个对象支持类似的集合操作,可用来完成找出两个字典间有哪些键值对有相同之处的操作。

尽管类似,但字典的values()方法并不支持集合操作。部分原因是因为在字典中键和值是不同的,从值的角度来看并不能保证所有的值都是唯一的。单这一条原因就使得某些特定的集合操作是有问题的。但是,如果必须执行这样的操作,还是可以先将值转化为集合来实现。

《Python Cookbook(第3版)中文版》——1.9 在两个字典中寻找相同点相关推荐

  1. python cookbook pdf下载-Python Cookbook 第3版 中文版.pdf

    作 者 :(美)比斯利,(美)琼斯著 出版发行 : 北京:人民邮电出版社 , 2015.05 ISBN号 :978-7-115-37959-7 页 数 : 684 原书定价 : 108.00 开本 : ...

  2. Python Cookbook(第3版)中文版:15.17 传递文件名给C扩展

    15.17 传递文件名给C扩展¶ 问题¶ 你需要向C库函数传递文件名,但是需要确保文件名根据系统期望的文件名编码方式编码过. 解决方案¶ 写一个接受一个文件名为参数的扩展函数,如下这样: static ...

  3. Python Cookbook(第3版)中文版:15.18 传递已打开的文件给C扩展

    15.18 传递已打开的文件给C扩展¶ 问题¶ 你在Python中有一个打开的文件对象,但是需要将它传给要使用这个文件的C扩展. 解决方案¶ 要将一个文件转换为一个整型的文件描述符,使用 PyFile ...

  4. 《Python Cookbook 3rd》笔记(1.17):从字典中提取子集

    从字典中提取子集 问题 你想构造一个字典,它是另外一个字典的子集. 解法 最简单的方式是使用字典推导.比如: prices = {'ACME': 45.23,'AAPL': 612.78,'IBM': ...

  5. python书籍推荐:Python Cookbook第三版中文

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/44/ 来源:python黑洞网 内容 ...

  6. 《Python Cookbook 3rd》笔记(2.17):在字符串中处理html和xml

    在字符串中处理html和xml 问题 你想将 HTML 或者 XML 实体如 &entity; 或 &#code; 替换为对应的文本.再者,你需要转换文本中特定的字符 (比如<, ...

  7. 《Python Cookbook 3rd》笔记(2.11):删除字符串中不需要的字符

    删除字符串中不需要的字符 问题 你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白 解法 strip() 方法能用于删除开始或结尾的字符. lstrip() 和 rstrip() 分别从左和从 ...

  8. python cookbook 中文百度云_《Python+Cookbook》第三版中文v3.0.0PDF高清完整版免费下载|百度云盘...

    David Beazley是一位居住在芝加哥的独立软件开发者以及图书作者.他主要的工作在于编程工具,提供定制化的软件开发服务,以及为软件开发者.科学家和工程师教授编程实践课程.他最为人熟知的工作在于P ...

  9. Python Cookbook --第一章:数据结构和算法(1)

    问题1:现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? >>> p = (4,5) >>> x,y = p >>&g ...

最新文章

  1. 报名 | 清华大学大数据能力提升项目报名指南 (2020秋)
  2. 比特币钱包(2) BIP32 HD钱包之生成子密钥
  3. Linux搜索查找命令合集
  4. spirngmvc如何实现直接输入网页重定向到登录_Python 模拟新浪微博登录
  5. Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转
  6. PHP面试题:windows平台, Apache Http Server启动失败, 排错思路是什么?
  7. python爬虫:bs4搜索文档树
  8. 图解内存的工作原理及时序介绍
  9. 《数学之友》期刊简介及投稿要求
  10. 若依源码分析(7)——岗位管理
  11. 数据清洗第六章—课后操作题
  12. 2017.10.11 米加特官网重磅改版,华丽上线
  13. APT32F102-SIO模块控制WS2812
  14. 天涯明月刀@小虫@有你真好@下载
  15. 内容即广告是最好的移动商业模式?
  16. Python利用百度地图获取两地距离 最详细过程和源代码
  17. Office2007打开word和excel文件速度慢,在两个打开的word文件之间切换的速度慢,如何处理?...
  18. 2000-2020全国及31省城投债数据
  19. 【今日CV 计算机视觉论文速览 92期】 2 Apr 2019
  20. las数据的读写及注意事项总结

热门文章

  1. 我为什么重新开始学习数学?
  2. php 会议签到系统_人脸识别会议签到系统有哪些优点?
  3. js对象与字符串相互转换
  4. 八进制、十进制、十六进制及字符相互对应表
  5. 通过 SpringBoot 中使用 lombok 实现自动创建JavaBean的get/set方法、全参/无参构造方法、toString()、equals()、hashCode()
  6. 大学python笔记_Introduction to Python课程笔记
  7. wpf 锁定计算机vb,wpf 窗体自动关闭
  8. oppo如何更新计算机,OPPO R17Pro手机怎么升级和降级系统?
  9. 计算机网络部分(共44题),2018年10月自考04741计算机网络原理试卷及答案
  10. jquery post 返回php,如何在成功的AJAX / jQuery POST上返回PHP变量