- 定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别
students = {'name': 艾克, 'age': 18, '成绩(单科)': 87, 'tel': 13778877738, 'gender': '男'}
-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
-
统计不及格学生的个数
-
打印不及格未成年学生的名字和对应的成绩
-
求所有男生的平均年龄
-
打印手机尾号是8的学生的名字
-
打印最高分和对应的学生的名字
-
删除性别不明的所有学生
-
将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
students = [{'name': 艾克, 'age': 18, '语文': 57, 'tel': 1377887, 'gender': '男'},
{'name': 娜美, 'age': 17, '语文': 96, 'tel': 1537647, 'gender': '女'},
{'name': 卢锡安, 'age': 21, '语文': 62, 'tel': 7788778, 'gender': '男'},
{'name': 万豪, 'age': 26, '语文': 26, 'tel': 1778638, 'gender': '男'},
{'name': 光辉, 'age': 16, '语文': 35, 'tel': 3788778, 'gender': '女'},
{'name': 大树, 'age': 31, '语文': 71, 'tel': 4232238, 'gender': '不明'}
]
# 1.统计不及格学生的个数
count = 0
for x in students:
if x['语文'] < 60:
count += 1
print(count)
# 2.打印不及格未成年学生的名字和对应的成绩
for x in students:
if x['语文'] < 60 and x['age'] < 18:
print(x['name'], x['语文'])
# 3.求所有男生的平均年龄
age1 = [x['age'] for x in students if x['gender'] == '男']
print(sum(age1)/len(age1))
# 4.打印手机尾号是8的学生的名字
print([x['name'] for x in students if x['tel'] % 10 == 8])
# 5.打印最高分和对应的学生的名字
max_crouse = 56
for x in students:
if x['语文'] > max_crouse:
max_crouse = x['语文']
print(max_crouse)
# 6.删除性别不明的所有学生
unknow = [students.pop() for x in students if x['gender'] == '不明']
print(students)
# 7.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
print(sorted(students, key=lambda x: x['语文'], reverse=True))
- 定义一个变量保存一个班级的信息,班级信息中包括:班级名称、教室位置、班主任信息、讲师信息、班级所有的学生(根据实际情况确定数据类型和具体信息)
class = {
'name':'python数据分析'
'place':'14教师'
'class_teacher':{'name':'吴老师','gender':'女','age':18,'tel':'1234'}
'Lecturer':[
{'name':'余老师','gender':'女','age':18,'tel':'4334'},
{'name':'洛老师','gender':'男','age':22,'tel':'5672'},
{'name':'付老师','gender':'男','age':20,'tel':'2462'},
{'name':'姜老师','gender':'男','age':20,'tel':'9746'}
]
'All_student':[
{'name': 艾克, 'age': 18, 'scores': 57, 'tel': 1377887, 'gender': '男', 'Contact':{'name': '张三', 'tel': '43221'}},
{'name': 娜美, 'age': 17, 'scores': 96, 'tel': 1537647, 'gender': '女','Contact':{'name': '李四', 'tel': '43245'}},
{'name': 卢仙, 'age': 21, 'scores': 62, 'tel': 7788778, 'gender': '男','Contact':{'name': '王五', 'tel': '93673'}},
{'name': 万豪, 'age': 26, 'scores': 26, 'tel': 1778638, 'gender': '男','Contact':{'name': '刘六', 'tel': '75327'}},
{'name': 光辉, 'age': 16, 'scores': 35, 'tel': 3788778, 'gender': '女','Contact':{'name': '小明', 'tel': '14627'}},
{'name': 大树, 'age': 31, 'scores': 71, 'tel': 4232238, 'gender': '不明','Contact':{'name': '小红', 'tel': '52632'}}
]
}
- 已知一个列表保存了多个狗对应的字典:
dogs = [
{'name': '贝贝', 'color': '白色', 'breed': '银狐', 'age': 3, 'gender': '母'},
{'name': '花花', 'color': '灰色', 'breed': '法斗', 'age': 2},
{'name': '财财', 'color': '黑色', 'breed': '土狗', 'age': 5, 'gender': '公'},
{'name': '包子', 'color': '黄色', 'breed': '哈士奇', 'age': 1},
{'name': '可乐', 'color': '白色', 'breed': '银狐', 'age': 2},
{'name': '旺财', 'color': '黄色', 'breed': '土狗', 'age': 2, 'gender': '母'}
]
- 利用列表推导式获取所有狗的品种
[‘银狐’, ‘法斗’, ‘土狗’, ‘哈士奇’, ‘银狐’, ‘土狗’]
print([x['breed'] for x in dogs])
- 利用列表推导式获取所有白色狗的名字
[‘贝贝’, ‘可乐’]
print([x['name'] for x in dogs if x['color'] == '白色'])
- 给dogs中没有性别的狗添加性别为 ‘公’
[x.setdefault('gender', '公') for x in dogs]
print(dogs)
- 统计 ‘银狐’ 的数量
print(len([x['breed'] for x in dogs if x['breed'] == '银狐']))