如何快速找到多个字典中的公共键?

2019-02-08  本文已影响0人  Diolog

实际案例:

首先用随机函数统计出随机函数:

from random import randint,sample
s1 = {x:randint(1,4) for x in sample('abcefg',randint(3,6))}
s2 = {x:randint(1,4) for x in sample('abcefg',randint(3,6))}
s3 = {x:randint(1,4) for x in sample('abcefg',randint(3,6))}

做法1:

res = list()
for k in s1:
  if k in s2 and k in s3:
    res.append(k)

比较啰嗦,而且效率不够好。

解决方案:

解决1:

取交集
s1.keys() & s2.keys() & s3.keys()

解决2:

from functools import reduce
reduce(lambda a,b:a&b,map(dict.keys,[s1,s2,s3]))
上一篇 下一篇

猜你喜欢

热点阅读