20210507字典与集合

字典与集合20210507

  1. 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
list1 = [
    {'姓名':'小张', '年龄': 18, '成绩': 88, '电话': '13567890547', '性别': '男'},
    {'姓名':'小王', '年龄': 23, '成绩': 56, '电话': '18823769812', '性别': '男'},
    {'姓名':'小李', '年龄': 25, '成绩': 69, '电话': '15893295689', '性别': '女'},
    {'姓名':'小吴', '年龄': 19, '成绩': 48, '电话': '18735678345', '性别': '女'},
    {'姓名':'小胡', '年龄': 22, '成绩': 89, '电话': '13600548790', '性别': '男'},
    {'姓名':'小邓', '年龄': 21, '成绩': 57, '电话': '13956122118', '性别': '女'}
]
# 1.统计不及格学生的个数
count = 0
for x in list1:
    if x['成绩'] < 60:
        count += 1
print(count)
# 2.打印不及格学生的名字和对应的成绩
for x in list1:
    if x['成绩'] < 60:
        print('学生姓名:', x['姓名'], '  成绩:', x['成绩'])
# 3.统计未成年学生的个数
count1 = 0
for x in list1:
    if x['年龄'] < 18:
        count1 += 1
print(count1)
# 4.打印手机尾号是8的学生的名字
for x in list1:
    if int(x['电话']) % 10 == 8:
        print(x['姓名'])
# 5.打印最高分和对应的学生的名字

# 6.删除性别不明的所有学生
for x in list1:
    if x['性别'] == '性别不明':
        list1.remove(x)
print(list1)
# 7.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃) 
  1. 三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
# 1.求选课学生总共有多少人
course1 = {'刘德华', '张学友', '郭富城', '黎明', '周星驰', '李连杰', '孙耀威'}
course2 = {'任达华', '刘德华', '重案组之虎', '周星驰', '古天乐', '张学友', '王菲'}
course3 = {'古天乐', '刘德华', '郑伊健', '谢霆锋', '吕良伟', '张学友', '钱小豪'}
count = 0
for x in (course1 | course2 | course3):
    count += 1
print('总共人数:', count)
# 2.求只选了第一个学科的人的数量和对应的名字
name = []
count1 = 0
for x in course1:
    if x not in (course2 | course3):
        count1 += 1
        name.append(x)
print('人数:', count1)
print('姓名:', name)
# 3.求只选了一门学科的学生的数量和对应的名字
count2 = 0
set1 = set()
m = course1 & course2
n = course2 & course3
p = course1 & course3
for x in (course1 | course2 | course3):
    if x not in (m | n | p):
        count2 += 1
        set1.add(x)
print('学生数量:', count2)
print('姓名:', set1)
# 4.求只选了两门学科的学生的数量和对应的名字
count3 = 0
set2 = set()
m1 = course1 & course2
n1 = course2 & course3
p1 = course1 & course3
for x in (course1 | course2 | course3):
    if x in (m1 | n1 | p1):
        count3 += 1
        set2.add(x)
print('学生数量:',count3)
print('姓名:', set2)
# 5.求选了三门学生的学生的数量和对应的名字
count4 = 0
set3 = set()
for x in (course1 | course2 | course3):
    if x in (course1 & course2 & course3):
        count4 +=1
        set3.add(x)
print('学生数量', count4)
print('姓名:', set3)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值