Python怎么查找多个字典公共键key
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,今天小编给大家分享一下Python怎么查找多个字典公共键key的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下
千家信息网最后更新 2025年01月18日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安全错误
数据库的锁怎样保障安全
w10输入网络安全密钥没反应
服务器异常怎么回事
软件开发与计算机专业排名
IIS服务器处理硬核
网络安全专科学校排名2021
数据库处理技术的特点
wps提取公式数据库
台湾大带宽服务器
郧西互联网软件开发售后保障
百万群发数据库设计
数据库新技术范畴的理解
关系型数据库是
宁波替批网络技术有限公司
控件实时读取数据库
服务器传输安全研究
软件开发的呀硬件环境
服务器管理学习方法
语音聊天软件开发哪里有
天河高端服务器运维服务
暴雨天会不会影响网络服务器
上市公司网络安全股票
学好互联网科技就业的重要性
注意网络安全的倡议书
电脑上不了网无法连接代理服务器
网络安全宣传简单黑板报
从大到小排序数据库
服务器安全管理建议
30天清空数据库表
双人成行显示无法连接ea服务器
软件开发的配置项都要有基线嘛