Python怎么查找多个字典公共键key
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,今天小编给大家分享一下Python怎么查找多个字典公共键key的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
支付给境外软件开发费
数据库出现comdlg32
计算机网络技术树形图
不怕网络套路深网络安全解隐忧
评论网络安全核心技术
pppoe连接服务器
网络安全培训对学历有要求吗
宣传网络安全演讲稿
十大网络安全公司2020
大庆物业软件开发
成都高性能服务器
网络安全教育300字总结
网络安全保护备案定西市
软件开发怎么做的
游戏未响应与服务器
购买精准客户数据库
深圳门禁软件开发哪家好
软件开发到时没完成
网络安全有什么政策吗
广电网络安全生产管理制度
安装的数据库版本怎么改
芮酥网络技术
我国网络安全机构
阿里巴巴服务器有哪些台
关于网络安全的英语教案
教育信息化网络安全心得
客家文书数据库
edonkey服务器列表
网络安全设备部署位置
数据库安全优化系统