python 2-5 如何快速找到多个字典中的(key) viewkeys(集合)/reduce(lambda a,b:a&b,map(d.keys(),[d1,d2])

2-5 如何快速找到多个字典中的公共键(key) viewkeys(集合)/reduce(lambad a,b:a&b,map(d.keys(),[d1,d2,d3])
2-5 如何快速找到多个字典中的公共键(key) viewkeys(集合)/reduce(lambad a,b:a&b,map(d.keys(),[d1,d2,d3])

1.遍历三个字典中是否存在共同的键

2.1 使用viewkeys方法得到一个字典keys的 集合,使用集合交集就可以求出公共键
2.2 使用map函数,得到所有字典的keys集合
2.3 使用reduce函数,取所有函数的keys集合的交集

from random import randint
from random import sample
dict1={k:randint(1,4) for k in sample('abcdefgxyz',5)} 生成一个key 是在abcdefgxyz的三个,value14的随机数
dict2={k:randint(1,4) for k in sample('abcdefgxyz',5)} 生成一个key 是在abcdefgxyz的三个,value14的随机数
dict3={k:randint(1,4) for k in sample('abcdefgxyz',randint(5,6))} 生成一个key 是在abcdefgxyz的三个到六个

方法一:通过迭代字典key的方式和in来判断是否共享key

for k in dict1:
    if k in dict2.keys() and k in dict3.iterkeys():
        print "k was shared %s"%(k)

方法二 键集合交集

print dict1.viewkeys()&dict2.viewkeys()&dict3.viewkeys() 这个前提是需要知道哪些字典参与

方法三 使用map获得keys集合,然后去所有集合的交集

map(dict.viewkeys,[dict1,dict2,dict3]) 求得字典的viewkeys集合
print reduce(func,map(dict.viewkeys,[dict1,dict2,dict3])) 通过求交集的方式求得公共键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值