快速找到多个字典的公共键(key)

 1 '''
 2 快速找到多个字典的公共键(key)
 3 '''
 4 from functools import reduce
 5 from random import randint,sample
 6 #随机取样 在'abcdefg'七个字母中随机取3个
 7 s1 = sample('abcdefg',3)
 8 print(s1)
 9 #随机取样 在'abcdefg'七个字母中随机取3-7个
10 s2 = sample('abcdefg',randint(3,7))
11 dict1 = {x:randint(1,4) for x in sample('abcdefg',randint(3,7))}
12 dict2 = {x:randint(1,4) for x in sample('abcdefg',randint(3,7))}
13 dict3 = {x:randint(1,4) for x in sample('abcdefg',randint(3,7))}
14 print(dict1)
15 print(dict2)
16 print(dict3)
17 res=[]
18 #遍历出公共键
19 for x in dict1:
20     if x in dict2 and x in dict3:
21         res.append(x)
22 
23 print(res)
24 
25 #使用集合找出公共键  dict.keys为字典的K
26 print(dict1.keys())
27 
28 res1 = dict1.keys() & dict2.keys() & dict3.keys()
29 print(res1)
30 
31 
32 #使用map与reduce计算N条集合的公共键
33 dictmap = map(dict.keys,[dict1,dict2,dict3])
34 print(list(dictmap))
35 res2 = reduce(lambda x,y : x & y ,map(dict.keys,[dict1,dict2,dict3]))
36 print(res2)
原文地址:https://www.cnblogs.com/tngh/p/10426384.html