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、代码演示
fromrandomimportrandint,sample#随机取样进球球员信息print(sample('abcdef',randint(3,6)))#字典解析产生每轮数据s1={x:randint(1,4)forxinsample('abcdef',randint(3,6))}s2={x:randint(1,4)forxinsample('abcdef',randint(3,6))}s3={x:randint(1,4)forxinsample('abcdef',randint(3,6))}print(s1,s2,s3)#方法1:#迭代第1轮中键,之后再去判断这个key是否在s2和s3当中,如果在就表示这个键是公共键res=[]forkins1:ifkins2andkins3: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])))fromfunctoolsimportreduce#使用reduce函数,取每一轮的keys集合的交集print(reduce(lambdaa,b:a&b,map(dict.keys,[s1,s2,s3])))
3、快速找到多个字典中的公共键(key)的方法(补充)
方法一:for in循环
fromrandomimportrandint,samplea1={k:randint(1,4)forkin'abcdefg'}a2={k:randint(1,4)forkin'abc123456789'}a3={k:randint(1,4)forkin'abcinubububu'}a4={k:randint(1,4)forkin'abc89898989'}r=[]forxina1:ifxina2andxina3andxina4:r.append(x)print(r)randint(1,4)#从1~4间随机取一个数
方法二:利用集合的交集操作
fromrandomimportrandint,samplea1={k:randint(1,4)forkin'abcdefg'}a2={k:randint(1,4)forkin'abcdefg'}a3={k:randint(1,4)forkin'abcdefg'}a4={k:randint(1,4)forkin'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)
fromrandomimportrandint,samplefromfunctoolsimportreducea1={k:randint(1,4)forkin'abcdefg'}a2={k:randint(1,4)forkin'abcdefg'}a3={k:randint(1,4)forkin'abcdefg'}a4={k:randint(1,4)forkin'abcdefg'}b1=map(dict.keys,[a1,a2,a3,a4])b2=reduce(lambdaa,b:a&b,b1)print(b2)b1=map(dict.keys,[a1,a2,a3,a4])#以集合形式取每个字典的keys;
以上就是“Python怎么查找多个字典公共键key”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注主机评测网行业资讯频道。
下一篇:vue下载文档乱码怎么解决
winlogins.exe是什么文件?winlogins.exe是不是病毒
winsock2.6.exe是什么文件?winsock2.6.exe是不是病毒
WinDefendor.dll是什么文件?WinDefendor.dll是不是病毒
系统目录是什么文件?系统目录是不是病毒
wholove.exe是什么文件?wholove.exe是不是病毒
winn.ini是什么文件?winn.ini是不是病毒
w6oou.dll是什么文件?w6oou.dll是不是病毒
winduxzawb.exe是什么文件?winduxzawb.exe是不是病毒
wuammgr32.exe是什么文件?wuammgr32.exe是不是病毒
windiws.exe是什么文件?windiws.exe是不是病毒