-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
students = [ {'姓名':'小明','年龄':20,'成绩':100,'电话':102311111,'性别':'男',}, {'姓名':'小日','年龄':10,'成绩':80,'电话':102322228,'性别':'不明',}, {'姓名':'小月','年龄':12,'成绩':90,'电话':102333333,'性别':'女',}, {'姓名':'小红','年龄':13,'成绩':92,'电话':102344448,'性别':'女',}, {'姓名':'小绿','年龄':14,'成绩':90,'电话':102355555,'性别':'男',}, {'姓名':'小蓝','年龄':17,'成绩':50,'电话':102366666,'性别':'男',}, ]
- 统计不及格学生的个数
count = 0 for x in students: if x['成绩'] < 60: count += 1 print(count)
- 打印不及格学生的名字和对应的成绩
for x in students:
if x['成绩'] < 60:
print(x['姓名'],x['成绩'])
- 统计未成年学生的个数
count = 0
for x in students:
if x['年龄'] < 18:
count += 1
print(count)
- 打印手机尾号是8的学生的名字
for x in students:
if x['电话'] % 10 == 8:
print(x['姓名'])
- 打印最高分和对应的学生的名字
score = 0
for x in students:
if x['成绩'] > score:
score = x['成绩']
for x in students:
if x['成绩'] == score:
print(x['姓名'],score)
- 删除性别不明的所有学生
for x in students:
if x['性别'] =='不明':
students.remove(x)
print(students)
- 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
cj = [x['成绩'] for x in students]
new_list = sorted(cj,reverse=True)
cj1 = []
for x in students:
for i in new_list:
if i == x['成绩']:
cj1.append(x)
print(cj1)
- 用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
- 求选课学生总共有多少人
- 求只选了第一个学科的人的数量和对应的名字
- 求只选了一门学科的学生的数量和对应的名字
- 求只选了两门学科的学生的数量和对应的名字
- 求选了三门学生的学生的数量和对应的名字
eng = {'青龙','白虎','朱雀','玄武','穷奇','饕鬄','麒麟','貔貅'}
mat = {'青龙','白虎','朱雀','玄武','穷奇'}
lang = {'玄武','穷奇','饕鬄'}
# 1. 求选课学生总共有多少人
print(len(eng | mat | lang))
# 2. 求只选了第一个学科的人的数量和对应的名字
print(len(eng),eng)
# 3. 求只选了一门学科的学生的数量和对应的名字
print(len(eng - mat -lang),eng - mat -lang)
# 4. 求只选了两门学科的学生的数量和对应的名字
print(len(eng & mat - lang),eng & mat - lang)
# 5. 求选了三门学生的学生的数量和对应的名字
print(len(eng & mat & lang),eng & mat & lang)