from random import randint, sample
sample('abcdefg', 3)
sample('abcdefg', randint(3, 6))
s1 = {x: randint(1, 5) for x in sample('abcdefg', randint(3, 6))}
s2 = {x: randint(1, 5) for x in sample('abcdefg', randint(3, 6))}
s3 = {x: randint(1, 5) for x in sample('abcdefg', randint(3, 6))}
v_1 = []
for k in s1:
if k in s2 and k in s3:
v_1.append(k)
print v_1
s1.viewkeys()
s2.viewkeys()
v_2 = s1.viewkeys() & s2.viewkeys() & s3.viewkeys()
print v_2
v_3 = reduce(lambda a, b:a & b,map(dict.viewkeys, [s1, s2, s3]))
print v_3