如何快速找到多个字典中的公共键
2017-03-01 23:53
330 查看
注:本文使用python 3.5.2版本
有时候在统计数据的时候,我们需要知道多个字典的公共键。比如学校校运会,统计了某班级参赛学生成绩名次:
100米:
铅球:
接力:
现在要统计该有哪些学生同时报了100米,铅球,接力三项比赛。
一般思路是将这3个字典的键做与运算,就能得出公共的键:
这种方法代码不够简洁,执行效率也不够好(当字典十分庞大的时候)。
本文主要介绍下面两种方法:
map和reduce函数介绍可以参考廖大的教程:高阶函数–map/reduce
有时候在统计数据的时候,我们需要知道多个字典的公共键。比如学校校运会,统计了某班级参赛学生成绩名次:
100米:
{'小明': 1, '李雷': 6, '小李': 17, ...}
铅球:
{'李雷': 9, '露西': 24, ...}
接力:
{'小李': 2, '露西': 16, '李雷': 5, ...}
现在要统计该有哪些学生同时报了100米,铅球,接力三项比赛。
一般思路是将这3个字典的键做与运算,就能得出公共的键:
d1 = {'a': 1, 'c': 6, 'g': 17, 'd': 21, 'h': 4} d2 = {'c': 9, 'f': 24, 'd': 13, 'h': 27} d3 = {'b': 2, 'd': 16, 'h': 5} name = [] for k in d1: if k in d2 and k in d3: name.append(k) print(name) # ['d', 'h']
这种方法代码不够简洁,执行效率也不够好(当字典十分庞大的时候)。
本文主要介绍下面两种方法:
用集合(set)做交集运算的方式实现公共键
# 字典的viewkeys()方法得到字典keys集合 print(d1.keys() & d2.keys() & d3.keys()) # {'d', 'h'}
用map和reduce函数实现公共键
如果字典比较多的话,用集合的方法写起来比较繁琐,可以用map和reduce函数来处理:from functools import reduce # map函数得到所有字典keys集合 # reduce函数得到所有字典keys的交集 re = reduce(lambda x, y: x & y, map(dict.keys, [d1, d2, d3])) print(re)
map和reduce函数介绍可以参考廖大的教程:高阶函数–map/reduce
相关文章推荐
- python-3-如何快速找到多个字典中的公共键(key)?
- 如何快速找到多个字典中出现的公共键
- 如何快速找到多个字典中的公共键(key)
- <27>python学习笔记——如何快速找到多个字典中的的公共键key
- python【5】如何快速找到多个字典中的公共键
- 【慕课网】如何快速找到多个字典中的公共键
- python高效编程技巧5(如何快速找到多个字典中的公共键)
- 如何快速找到多个字典中出现的公共键
- Python高级编程-如何快速找到多个字典中的公工键(key)
- 2-5快速找到多个字典中的公共键
- python快速找到多个字典中的公共键
- python 2-5 如何快速找到多个字典中的(key) viewkeys(集合)/reduce(lambda a,b:a&b,map(d.keys(),[d1,d2])
- python_如何快速找打字典中公共key
- [Python高效编程] - 快速找到多个字典的公共键
- 如何能快速找到你要解决问题的相关信息
- 如何快速的找到自己需要的资料
- 如何用Source Insight 在reactos源码中快速找到某个函数的源码
- 如何快速找到可用代理
- 如何使用 DOI 快速找到论文的全文下载网址
- 如何快速找到网站集所在w3wp进程