day8-字典作业

  1. 定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别
students = {'name': 艾克, 'age': 18, '成绩(单科)': 87, 'tel': 13778877738, 'gender': '男'}
  1. 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )

  2. 统计不及格学生的个数

  3. 打印不及格未成年学生的名字和对应的成绩

  4. 求所有男生的平均年龄

  5. 打印手机尾号是8的学生的名字

  6. 打印最高分和对应的学生的名字

  7. 删除性别不明的所有学生

  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))
  1. 定义一个变量保存一个班级的信息,班级信息中包括:班级名称、教室位置、班主任信息、讲师信息、班级所有的学生(根据实际情况确定数据类型和具体信息)
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'}}
    ]
}
  1. 已知一个列表保存了多个狗对应的字典:
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': '母'}
]
  1. 利用列表推导式获取所有狗的品种

[‘银狐’, ‘法斗’, ‘土狗’, ‘哈士奇’, ‘银狐’, ‘土狗’]

print([x['breed'] for x in dogs])
  1. 利用列表推导式获取所有白色狗的名字

[‘贝贝’, ‘可乐’]

print([x['name'] for x in dogs if x['color'] == '白色'])
  1. 给dogs中没有性别的狗添加性别为 ‘公’
[x.setdefault('gender', '公') for x in dogs]
print(dogs)
  1. 统计 ‘银狐’ 的数量
print(len([x['breed'] for x in dogs if x['breed'] == '银狐']))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值