python基础一 ------如何获取多个字典相同的键

本文介绍了一种统计多场足球比赛中均有进球记录的球员的方法。通过三种不同的技术手段实现这一目标:传统循环比较法、集合运算以及使用Python高阶函数如map和reduce。这些方法有助于快速准确地找出在所有比赛中都有进球记录的球员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:

足球赛第一场进去统计  {"A":3,"B":2,"C":1}
足球赛第二场进去统计  {"A":3,"C":1}
足球赛第二场进去统计  {"A":2,"B":2}
统计每场都有进球的人---->找到多个字典的公共建

解决方法:

一:普通方法
二:集合
三:map(),reduce(),当N场比赛时

 1 from random import randint,sample
 2 #先生成随机的字典s1,s2,s3,
 3 #sample从给定的字符串中选取后面给定的数个,组成列表
 4 #sample("ABCFD",3) 
 5 #['A','C']
 6 s1 = {k:randint(3,6) for k in sample("ABCDEF",randint(1,5))}
 7 s2 = {k:randint(3,6) for k in sample("ABCDEF",randint(1,5))}
 8 s3 = {k:randint(3,6) for k in sample("ABCDEF",randint(1,5))}
 9 print(s1)
10 print(s2)
11 print(s3)
12 #方法一:
13 print("-------------------方法一-----------------")
14 
15 coment = []
16 for i in s1:
17     if i in s2 and i in s3:
18         coment.append(i) 
19 print(coment)
20 print("-------------------方法二-----------------")
21 #方法二: 将字典转化为集合(python2 dict.viewkeys(),3中 dict.key()),然后取并集
22 k1 = s1.keys()
23 k2 = s2.keys()
24 k3 = s3.keys()
25 coment = k1&k2&k3
26 print(coment)
27 print("-------------------方法三-----------------")
28 #当N个时
29 from functools import reduce
30 x = map(lambda s:s.keys(),[s1,s2,s3])
31 #reduce 用法,必须接受俩参数进行操作,之后将前面两个参数和从后面的列表中一个一个取出进行之前相同的操作
32 coment = reduce(lambda x,y:x&y,x)
33 print(coment)

 

转载于:https://www.cnblogs.com/ruoniao/p/6836080.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值