首页 > 其他分享 >5.3学习总结

5.3学习总结

时间:2023-05-08 10:56:50浏览次数:43  
标签:总结 5.3 ACM 学生 学习 竞赛 English print sorted

python学习——set集合,sorted函数

 

题目:

输入a,b班的名单,并进行如下统计。

输入格式:

第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符。
第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔,可能有重复学生。
第3行::参加acm竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第4行:参加英语竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第5行:转学的人(只有1个人)。

输出格式

特别注意:输出人员名单的时候需调用sorted函数,如集合为x,则print(sorted(x))
输出两个班级的所有人员数量
输出两个班级中既没有参加ACM,也没有参加English的名单和数量
输出所有参加竞赛的人员的名单和数量
输出既参加了ACM,又参加了英语竞赛的所有人员及数量
输出参加了ACM,未参加英语竞赛的所有人员名单
输出参加英语竞赛,未参加ACM的所有人员名单
输出参加只参加ACM或只参加英语竞赛的人员名单
最后一行:一个同学要转学,首先需要判断该学生在哪个班级,然后更新该班级名单,并输出。如果没有在任何一班级,什么也不做。

输入样例:

abcdefghijab
1   2 3 4 5 6 7 8 9  10
1 2 3 a b c
1 5 10 a d e f
a

输出样例:

Total: 20
Not in race: ['4', '6', '7', '8', '9', 'g', 'h', 'i', 'j'], num: 9
All racers: ['1', '10', '2', '3', '5', 'a', 'b', 'c', 'd', 'e', 'f'], num: 11
ACM + English: ['1', 'a'], num: 2
Only ACM: ['2', '3', 'b', 'c']
Only English: ['10', '5', 'd', 'e', 'f']
ACM Or English: ['10', '2', '3', '5', 'b', 'c', 'd', 'e', 'f']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

 

代码:

a = input()
seta = set(a)
b = input()
setb = set(b.split()) # 通过切片操作消除空格

acm = input()
setacm = set(acm.split()) # 通过切片操作消除空格
english = input()
setenglish = set(english.split()) # 通过切片操作消除空格

zhuanxue = input()

Total = seta.union(setb) # 两班所有学生--并集
race = setacm.union(setenglish) #竞赛学生--并集
Nonrace = Total.difference(race) #非竞赛学生--返回集合的差集

ACMplusEnglish = setacm.intersection(setenglish) # 报名两项竞赛学生--返回集合的交集

OnlyACM = setacm.difference(setenglish) # 仅报ACM学生---差集
OnlyEnglish = setenglish.difference(setacm) # 仅报英语竞赛学生---差集

ACMOrEnglish = setacm.symmetric_difference(setenglish) # 报名一项竞赛---对称差集

print("Total:",len(seta.union(setb)))

print("Not in race:",sorted(Nonrace),end=", ")
print("num:",len(Nonrace))

print("All racers:",sorted(race),end=", ")
print("num:",len(race))

print("ACM + English:",sorted(ACMplusEnglish),end=", ")
print("num:",len(ACMplusEnglish))

print("Only ACM:",sorted(OnlyACM))

print("Only English:",sorted(OnlyEnglish))

print("ACM Or English:",sorted(ACMOrEnglish))

# 判断转学的学生
if zhuanxue in seta:
    seta.remove(zhuanxue)
    print(sorted(seta))
elif zhuanxue in setb:
    setb.remove(zhuanxue)
    print(sorted(setb))

 

总结:

1.了解了split可以通过切片消除掉空格

2.了解了set集合的几个函数:

  1)union:表示并集

  2)difference:表示差集

  3)intersection:表示交集

  4)symmetric_difference:表示对称差集(即两集合中除去交集的剩余部分的并集,个人理解)

3.sorted函数可以用来排序输出内容

标签:总结,5.3,ACM,学生,学习,竞赛,English,print,sorted
From: https://www.cnblogs.com/clh628/p/17381070.html

相关文章

  • 5.2学习总结
    Android学习——控件ProgressBar 1.常用属性......
  • 5.4学习总结
    Android学习——控件Notification 1.创建Notification和NotificationManager 2.NotificationChannel3.常用方法说明......
  • 离散数学第二部分内容总结
    前言:  高中对集合已经有过学习,像基本概念,一些基础的运算都有学习过,这部分的内容比较简单,重点要理清楚二元关系中的概念,容易弄混的地方要牢记。集合的基本概念:  1.集合的基本概念:   集合是“确定的一堆东西”,集合里的“东西”则称为元素。现代的集合一般被定义为:由一个......
  • Python学习之路和隐藏特征
    在小学生都学Python了,你还不知道怎么开始文中介绍了Python的应用广泛,功能强大,提供了Python的在线学习视频和资料等。学习程序语言不是一件难事,也不是一件简单事。为什么编程这么难中翻译了一篇编程学习的心路历程。(图例“编程信心与能力”:纵轴为信心值,横轴为能力水平,虚线从左至右依......
  • Linux学习 - awk使用
    Linux学习系列文章是生信宝典最开始主推的一块,力图从一个新额视角帮助初学者快速入门Linux系统,熟悉Linux下的文件和目录,文件操作,文件内容操作。而且教程摒弃了完美操作,列举出常见错误和解决方式,管道、标准输入输出解惑Linux下多种信息输出方式。在文件排序和FASTA文件操作中简述......
  • Linux学习 - 常用和不太常用的实用awk命令
    Linux学习系列文章是生信宝典最开始主推的一块,力图从一个新额视角帮助初学者快速入门Linux系统,熟悉Linux下的文件和目录,文件操作,文件内容操作。而且教程摒弃了完美操作,列举出常见错误和解决方式,管道、标准输入输出解惑Linux下多种信息输出方式。在文件排序和FASTA文件操作中简述......
  • R语言学习 - 非参数法生存分析
    生存分析指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析。常用于肿瘤等疾病的标志物筛选、疗效及预后的考核。简单地说,比较两组或多组人群随着时间的延续,存活个体的比例变化......
  • 每日总结 5.7
    今日学习昨天的代码window.location.reload();重载页面的js<script>functionreplaceDoc(){window.location.replace("https://www.————————.com")}</script><metahttp-equiv="refresh"content="5">页面刷新和自动刷新。......
  • Git使用经验总结1
    目录1.概述2.界面化工具3.远端覆盖本地4.设置代理1.概述就不去介绍一些Git最常规的命令了,这些命令一般的教程都有,这里更多的总结自己的一些使用经验。当然作为初学者,常规的基础命令最好都亲身实践一下。2.界面化工具Git命令用起来还是挺繁琐的,所以一般都有一个界面化工......
  • 【Disrupter】学习小记
    Disrupter是什么看官网:https://github.com/LMAX-Exchange/disruptor它号称是一个很快很快的MQ,然后,脑海里面冒出一个问题,既然如此,那为什么还需要其它的MQ?按这个逻辑,什么kafka,rabbitmq,rocketmq,pulsar等这些岂不是没人用了?不对啊。肯定不对。看官网的第一句,其实已经给出......