Python学习内容为本人学习内容笔记,并验证后结果,有兴趣的同学可以查看网络公开的Python教程.
0. 产生字典 s1,s2,s3
from random import randint
s1={x:randint(1,4) for x in sample('abcdefg',randint(3,6))}
#randint(1,4) 随机产生数字,作为value, sample('abcdefg',randint(3,6))从 abcefg字符串中随机挑选字符作为key
s2={x:randint(1,4) for x in sample('abcdefg',randint(3,6))}
s3={x:randint(1,4) for x in sample('abcdefg',randint(3,6))}
1.传统方案,遍历:
res=[]
for k in s1:
if k in s2 and k in s3:
res.append(k)
print(res)
循环体结构,开销比较大,当数据比较多时.
2.优化方案:
from random import randint, sample
from functools import reduce
#...
r=reduce(lambda a,b: a&b, map(dict.keys,[s1,s2,s3]))
print(list(r))
相同效果,更快速!