-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
stus = [ {'name': 'stu1', 'age': 18, 'score': 98, 'tel': '001', 'gender': '男'}, {'name': 'stu2', 'age': 18, 'score': 56, 'tel': '464', 'gender': '不明'}, {'name': 'stu3', 'age': 18, 'score': 49, 'tel': '648', 'gender': '女'}, {'name': 'stu4', 'age': 18, 'score': 90, 'tel': '679', 'gender': '女'}, {'name': 'stu5', 'age': 18, 'score': 60, 'tel': '498', 'gender': '男'}, {'name': 'stu6', 'age': 18, 'score': 74, 'tel': '214', 'gender': '不明'} ]
-
统计不及格学生的个数
count = 0 for stu in stus: if stu['score'] < 60: count += 1 print(count)
-
打印不及格学生的名字和对应的成绩
for stu in stus: if stu['score'] < 60: print(stu['name'], stu['score'])
-
打印手机尾号是8的学生的名字
for stu in stus: if stu['tel'][-1] == '8': print(stu['name'])
-
打印最高分和对应的学生的名字
max_score = 0 _stu = 0 for stu in stus: if stu['score'] > max_score: max_score = stu['score'] _stu = stu print(max_score, _stu['name'])
-
删除性别不明的所有学生
for stu in stus.copy(): if stu['gender'] == '不明': stus.remove(stu) print(stus)
-
将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
new_stus = stus.copy() for item in stus.copy(): s1 = 0 for stu in stus: if item['score'] > stu['score']: s1 += 1 new_stus[3-s1+1] = item print(new_stus)
-
-
用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
sub1 = {'赵六', '钱七', '孙八', '李九'} sub2 = {'周三', '吴四', '郑五', '王六', '钱七', '李九'} sub3 = {'赵六', '钱七', '吴四', '郑五'}
-
求选课学生总共有多少人
sum1 = (sub1 | sub2) | sub3 print(sum1)
-
求只选了第一个学科的人的数量和对应的名字
print(sub1, len(sub1))
-
求只选了一门学科的学生的数量和对应的名字
a = sum1 - ((sub1 | sub2) - (sub1 ^ sub2)) - ((sub2 | sub3) - (sub2 ^ sub3))- ((sub1 | sub3) - (sub1 ^ sub3)) print(a, len(a))
-
求只选了两门学科的学生的数量和对应的名字
sum2 = sum1 - a - ((sub1 & sub2) & sub3) print(sum2, len(sum2))
-
求选了三门学生的学生的数量和对应的名字
print(sum1-a-sum2, len(sum1-a-sum2))
-
day8-字典和集合作业
最新推荐文章于 2023-03-31 17:09:15 发布