-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
student = [{'name':'王一','age':18,'score':86,'tel':'12435','gender':'男'}, {'name':'王二','age':19,'score':58,'tel':'12438','gender':'男'}, {'name':'王三','age':20,'score':66,'tel':'12448','gender':'男'}, {'name':'王四','age':17,'score':53,'tel':'12435','gender':'男'}, {'name':'王五','age':16,'score':70,'tel':'12435','gender':'男'}, {'name':'王六','age':19,'score':31,'tel':'12435','gender':'男'} ]
-
统计不及格学生的个数
count = 0 for x in student: if x['score']<60: count+=1 print(count)
-
打印不及格学生的名字和对应的成绩
for x in student: if x['score']<60: print(x['name'],x['score'])
-
打印手机尾号是8的学生的名字
for x in student: if x['tel'][-1]=='8': print(x['name'])
-
打印最高分和对应的学生的名字
max_score=0 for x in student: if x['score']>max_score: max_score = x['score'] print(max_score,x['name'])
-
删除性别不明的所有学生
for x in student.copy(): if x['gender']=='不明': student.remove(x) print(student)
-
将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
a=[] b={} for x in student: a.append(x['score']) a.sort(reverse=True) pass
-
-
用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
english ={'王一','王二','李三','周五','赵六'} math = {'王二','王三','李四','周五','赵六'} science = {'王一','王二','李四','周三','赵五'}
-
求选课学生总共有多少人
count = 0 a = set() a.update((english|math)|science) for x in a: count+=1 print(count)
-
求只选了第一个学科的人的数量和对应的名字
count = 0 for x in english: if x not in math|science: count+=1 print(english-(math|science),count)
-
求只选了一门学科的学生的数量和对应的名字
a = set() a.update((english|math)^science) print(a) count=0 for x in a: if x not in english & math: count+=1 print(x,end='') print(count)
-
求只选了两门学科的学生的数量和对应的名字
a = set() a.update((math & english)|(math & science)^(science & english)) count=0 for x in a: count+=1 print(x, end='') print(count)
-
求选了三门学生的学生的数量和对应的名字
a = set() a.update(math&science&english) count = 0 for x in a : count+=1 print(x,end='') print(count)
-
day8-字典和集合作业
最新推荐文章于 2023-03-31 17:09:15 发布