Python怎么查找多个字典公共键key
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,今天小编给大家分享一下Python怎么查找多个字典公共键key的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下
千家信息网最后更新 2024年11月11日Python怎么查找多个字典公共键key
今天小编给大家分享一下Python怎么查找多个字典公共键key的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
1、如何快速找到多个字典中的公共键(key)
实际案例:
西班牙足球甲级联赛,每轮球员进球统计:
第一轮:{'苏亚雷斯': 1, '梅西': 2, '本泽马': 1, 'C罗': 3, ...}
第二轮:{'苏亚雷斯': 2, 'C罗': 1, '格里丝曼': 2, '贝尔': 1, ...}
第三轮:{'苏亚雷斯': 1, '托雷斯': 2, '贝尔': 1, '内马尔': 1, ...}
统计出前N轮,每场比赛都有进球的球员。
注:公共键就是在每个字典中都出现的键。
解决方案:
利用集合(set)的交集操作
Step1:使用字典的keys()方法,得到一个字典keys的集合;
Step2:使用map函数,得到所有字典的keys的集合;
Step3:使用reduce函数,取所有字典的keys集合的交集。
2、代码演示
from random import randint, sample # 随机取样进球球员信息print(sample('abcdef', randint(3, 6)))# 字典解析产生每轮数据s1 = {x: randint(1, 4) for x in sample('abcdef', randint(3, 6))}s2 = {x: randint(1, 4) for x in sample('abcdef', randint(3, 6))}s3 = {x: randint(1, 4) for x in sample('abcdef', randint(3, 6))}print(s1, s2, s3)# 方法1:# 迭代第1轮中键,之后再去判断这个key是否在s2和s3当中,如果在就表示这个键是公共键res = []for k in s1: if k in s2 and k in s3: res.append(k)print(res) # 方法2:# 获取每一个字典中的所有key,python2为viewkeys()print(s1.keys(), s2.keys(), s3.keys())# 取所有集合的&交集,就是公共键print(s1.keys() & s2.keys() & s3.keys()) # 方法3:# 使用map得到每一轮的keys集合print(list(map(dict.keys, [s1, s2, s3]))) from functools import reduce# 使用reduce函数,取每一轮的keys集合的交集print(reduce(lambda a, b: a & b, map(dict.keys, [s1, s2, s3])))
3、快速找到多个字典中的公共键(key)的方法(补充)
方法一:for in循环
from random import randint, samplea1 = {k: randint(1, 4) for k in 'abcdefg'}a2 = {k: randint(1, 4) for k in 'abc123456789'}a3 = {k: randint(1, 4) for k in 'abcinubububu'}a4 = {k: randint(1, 4) for k in 'abc89898989'}r = []for x in a1: if x in a2 and x in a3 and x in a4: r.append(x)print(r)randint(1, 4) # 从1~4间随机取一个数
方法二:利用集合的交集操作
from random import randint, samplea1 = {k: randint(1, 4) for k in 'abcdefg'}a2 = {k: randint(1, 4) for k in 'abcdefg'}a3 = {k: randint(1, 4) for k in 'abcdefg'}a4 = {k: randint(1, 4) for k in 'abcdefg'}a = a1.keys() & a2.keys() & a3.keys() & a4.keys()print(a)
a1.keys():得到a1字典的key,一set格式;
a1.keys() & a2.keys() & a3.keys() & a4.keys():取4个集合的公共元素;
a为一个集合(set)
方法三:使用map即reduce(用于求n个字典的公共key)
from random import randint, samplefrom functools import reducea1 = {k: randint(1, 4) for k in 'abcdefg'}a2 = {k: randint(1, 4) for k in 'abcdefg'}a3 = {k: randint(1, 4) for k in 'abcdefg'}a4 = {k: randint(1, 4) for k in 'abcdefg'}b1 = map(dict.keys, [a1, a2, a3, a4])b2 = reduce(lambda a ,b: a & b, b1)print(b2)b1 = map(dict.keys, [a1, a2, a3, a4]) #以集合形式取每个字典的keys;
以上就是"Python怎么查找多个字典公共键key"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
字典
方法
交集
多个
知识
篇文章
函数
就是
球员
进球
苏亚雷斯
雷斯
一轮
苏亚
内容
贝尔
统计
不同
很大
三轮
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
台州利和网络技术有限公司
如何在java显示数据库的时间
smba服务器
软件开发的方法主要目的是
达梦数据库有没有32位的
数据库写和查哪个快
数据库系统的叙述错误的是
泰山杯网络安全大赛团体得分
数据库115错误
国家网络安全散文
推荐网络安全设置
威海导航软件开发
济南商城软件开发服务公司
网络安全探针一般在哪里
宜宾市网络安全教育
什么是嵌入式数据库有何特点
服务器打开不显示网络连接
python查询数据库中信息
软件开发就业前景及薪酬
网络安全录音下载
软件开发项目监理费
软件开发预算是怎么做的
阿里云服务器数据迁移本地
邯郸工业软件开发收费报价表
龙岗有什么网络技术公司
联想x86服务器
无法检测到网络安全配置摄像头
如何知道传真服务器位置
亳州学院网络安全周
互联网科技启动会ppt