python 2-5如何快速找到多个字典中的公共键(key)

from random import randint, sample
sample('abcxyz', 4)
sample('abcxyz', randint(3, 5)

得到初始序列

s1 = {x: randint(1,4) for x in sample('abcxyz', randint(4,6))}
s2 = {x: randint(1,4) for x in sample('abcxyz', randint(4,6))}
s3 = {x: randint(1,4) for x in sample('abcxyz', randint(4,6))}

第一种方法

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

第二种方法

s1.keys()
s1.keys() & s2.keys() & s3.keys()

第三种方法

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