list1 =[{'姓名':'小张','年龄':18,'成绩':88,'电话':'13567890547','性别':'男'},{'姓名':'小王','年龄':23,'成绩':56,'电话':'18823769812','性别':'男'},{'姓名':'小李','年龄':25,'成绩':69,'电话':'15893295689','性别':'女'},{'姓名':'小吴','年龄':19,'成绩':48,'电话':'18735678345','性别':'女'},{'姓名':'小胡','年龄':22,'成绩':89,'电话':'13600548790','性别':'男'},{'姓名':'小邓','年龄':21,'成绩':57,'电话':'13956122118','性别':'女'}]# 1.统计不及格学生的个数
count =0for x in list1:if x['成绩']<60:
count +=1print(count)# 2.打印不及格学生的名字和对应的成绩for x in list1:if x['成绩']<60:print('学生姓名:', x['姓名'],' 成绩:', x['成绩'])# 3.统计未成年学生的个数
count1 =0for x in list1:if x['年龄']<18:
count1 +=1print(count1)# 4.打印手机尾号是8的学生的名字for x in list1:ifint(x['电话'])%10==8:print(x['姓名'])# 5.打印最高分和对应的学生的名字# 6.删除性别不明的所有学生for x in list1:if x['性别']=='性别不明':
list1.remove(x)print(list1)# 7.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
# 1.求选课学生总共有多少人
course1 ={'刘德华','张学友','郭富城','黎明','周星驰','李连杰','孙耀威'}
course2 ={'任达华','刘德华','重案组之虎','周星驰','古天乐','张学友','王菲'}
course3 ={'古天乐','刘德华','郑伊健','谢霆锋','吕良伟','张学友','钱小豪'}
count =0for x in(course1 | course2 | course3):
count +=1print('总共人数:', count)# 2.求只选了第一个学科的人的数量和对应的名字
name =[]
count1 =0for x in course1:if x notin(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 notin(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)