首先生成多个随机字典:
from random import randint,sample
s1 = {x: randint(1,4) for x in sample('abcdefg',randint(3,6))}
s2 = {x: randint(1,4) for x in sample('abcdefg',randint(3,6))}
s3 = {x: randint(1,4) for x in sample('abcdefg',randint(3,6))}
print(s1)
print(s2)
print(s3)
输出:
{'e': 2, 'b': 1, 'c': 2, 'd': 3}
{'d': 3, 'e': 4, 'g': 3, 'f': 3, 'c': 2}
{'e': 2, 'b': 4, 'c': 3, 'd': 3}
第一种方法
使用for循环
res = []
for k in s1:
if k in s2 and k in s3:
res.append(k)
print(res)
输出:
['e', 'c', 'd']
第二种方法
使用python3字典中自带的函数keys,在python2中为viewkeys,可以返回字典的键
print(s1.keys() & s2.keys() & s3.keys())
输出:
{'d', 'e', 'c'}
第三种方法
使用map以及reduce函数,需要从functools包中导入reduce
from functools import reduce
print(reduce(lambda x,y: x & y,map(dict.keys,[s1,s2,s3])))
输出:
{'d', 'e', 'c'}