这个问题有多个解法:
1、实用set的技巧,取到交集就好
d1 = {'f': 4, 'e': 1, 'b': 2}
d2 = {'b': 3, 'f': 2, 'c': 2, 'e': 1}
d3 = {'e': 1, 'c': 4, 'd': 3}
实用dict中的keys() 方法可以罗列出 各个dict的key值
实用 d1.keys() & d2.keys() & d2.keys 就能得到最终结果
2、遍历的方法(效率较低 不建议)
d1 = {'f': 4, 'e': 1, 'b': 2}d2 = {'b': 3, 'f': 2, 'c': 2, 'e': 1}
d3 = {'e': 1, 'c': 4, 'd': 3}
同样用keys() 的方法获得 各个dict的key值:
keys1 = d1.keys()
keys2 = d2.keys()
keys3 = d3.keys()
temp_list = []
然后 for i in keys1:
if i in keys2 & i in keys3:
temp_list.append(i)
3、实用map 和 reduce
先得到一个map:
map(dict.keys,[d1, d2, d3])
我们可以强制转换为list类打印出来看看结果。
接下来 我们要去使用 reduce方法 (注意这个方法在python3.2 以后已经被放到了functools包下了 所以在使用前需要倒入这个包)
import functools
functools.reduce(lambda x, y : x & y, map(dict.keys,[d1,d2,d3]))
即可找到最终结果