0
点赞
收藏
分享

微信扫一扫

【慕课网】如何快速找到多个字典中的公共键

静悠 2023-03-16 阅读 72


# '西班牙足球甲级联赛,每轮球员进球统计:
# 第一轮:{'苏亚雷斯':1,'梅西':2,'本泽马':1,'c罗':3}
# 第二轮:{'苏亚雷斯':1,'c罗':1,'格里兹曼':2,'贝尔':1}
# 第三轮:{'苏亚雷斯':1,'托雷斯':2,'贝尔':1,'内马尔':3}
# .....
# 统计出前N轮,每场比赛都有进球的球员
from functools import reduce
from random import randint, sample


def main():
# sample随机取样
# a=sample ('abcdefg',3)
a = sample('abcdefg', randint(3, 6))

s1 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
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))}
# print(s1,s2,s3)
res = []
for k in s1:
if k in s2 and k in s3:
res.append(k)
print(res)
pass


def main2():
# sample随机取样
# a=sample ('abcdefg',3)
a = sample('abcdefg', randint(3, 6))

s1 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
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))}
# print(s1,s2,s3)
# 利用集合(set的交集)
# 1 使用字典的viewkeys()方法 得到字典keys的集合
# 2 使用map函数,得到所有字典的keys的集合
# 3 使用reduce函数,取所有字典的keys集合的交集
print(s1.keys())
print(s2.keys())
print(s3.keys())
# 取交集
print(s1.keys() & s2.keys() & s3.keys())
pass


def main3():
# sample随机取样
# a=sample ('abcdefg',3)
a = sample('abcdefg', randint(3, 6))
s1 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
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))}
s5 = reduce(lambda a, b: a & b, map(dict.keys, [s1, s2, s3]))
print(s5)
pass


main3()


举报

相关推荐

0 条评论