题目:

输入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函数可以用来排序输出内容

python学习——set集合,sorted函数的更多相关文章

  1. Python中sort与sorted函数

    python中列表的内置函数sort()可以对列表中的元素进行排序,而全局性的sorted()函数则对所有可迭代的序列都是适用的: 并且sort()函数是内置函数,会改变当前对象,而sorted()函 ...

  2. Python中sort和sorted函数代码解析

    Python中sort和sorted函数代码解析 本文研究的主要是Python中sort和sorted函数的相关内容,具体如下. 一.sort函数 sort函数是序列的内部函数 函数原型: L.sor ...

  3. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  4. [python学习] 语言基础—排序函数(sort()、sorted()、argsort()函数)

    python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 ls = list([5, 2, 3, 1, 4]) new_ls = sorted ...

  5. python学习交流 - 内置函数使用方法和应用举例

    内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...

  6. Python学习笔记010——匿名函数lambda

    1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...

  7. Python中sort以及sorted函数初探

    sorted(...) Help on built-in function sorted in module __builtin__: sorted(...) sorted(iterable, cmp ...

  8. Python map/reduce/filter/sorted函数以及匿名函数

    1. map() 函数的功能: map(f, [x1,x2,x3]) = [f(x1), f(x2), f(x3)] def f(x): return x*x a = map(f, [1, 2, 3, ...

  9. python学习第十天 -- 函数

    稍微学过其他编程语言的人都应该了解函数的概念.在这里就不做过多的介绍. Python内置了很多有用的函数,我们可以也直接调用. 可以直接从Python的官方网站查看文档: http://docs.py ...

  10. Python学习笔记(Ⅱ)——循环/选择/函数

    一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...

随机推荐

  1. Osx10.14升级watchman踩坑记

    背景 使用 watchman 检测文件变化通知非常的好用, 但有些时候会出现 watchman 占用内存和 CPU 特别疯狂, 通过 watch-del 也无济与事, 由于 watchman 的版本 ...

  2. C#:开发一个winform窗体程序,实现强势股票池的数据获取。(需对接第三方接口,目前可免费使用)

    写在前面:短暂的接触过一段时间的股票市场,只能说A股真的太能杀了! 开发这个工具的初衷呢,是和几个好友在每日做"慈善"后,突发奇想:如果能实时获取当前股市里强势的股票就好了,因为这 ...

  3. JZOJ 5062. 【GDOI2017第二轮模拟day1】航海舰队

    \(\text{Solution}\) 这还是 [Lydsy2017省队十连测] 的题 不得不说 \(FFT\) 在字符串匹配中的妙啊! 前面做了道一维的题,现在这是二维的 从题目入手,不考虑可不可达 ...

  4. 【雅礼联考DAY01】逃跑

    #pragma GCC optimize(2) #pragma GCC optimize(3) #include<cstdio> using namespace std; const in ...

  5. 读论文SRCNN:Learning a Deep Convolutional Network for Image Super-Resolution

    Learning a Deep Convolutional Network for Image Super-Resolution SRCNN是深度学习应用于SR领域的开山之作. 论文 2014 ECC ...

  6. C# 时间各种格式

    1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=curre ...

  7. GIS若干相关的概念

    投影 常用的投影坐标系: CGCS2000_3_Degree_GK_CM_111E CGCS2000_3_Degree_GK_Zone_37 CGCS2000_GK_Zone_19 Beijing_1 ...

  8. OpenAI Java SDK——chatgpt-java-v1.0.3更新支持GPT-3.5-Turbo,支持语音转文字,语音翻译。

    简介 chatgpt-java是一个OpenAI的Java版SDK,支持开箱即用.目前以支持官网全部Api.支持最新版本GPT-3.5-Turbo模型以及whisper-1模型.增加chat聊天对话以 ...

  9. windows-sam文件

    sam文件是账号密码的数据库文件 存放位置C:\Windows\System32\Config\sam

  10. 洛谷 P6021 洪水

    题意 给定一棵有 \(n\) 个结点的树,点有点权:一共有 \(m\) 次操作,每次操作包括以下两种: 在一个点的子树中删去一些结点,使得该子树中所有叶结点与该子树的根结点不连通,并且使删去的点的点权 ...