day8-字典和集合作业

  1. 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )

    students = [
        {'name': 'Amy', 'age':'18', 'score':78, 'Tel':'17745468818', 'gender':'女'},
        {'name': 'Ben', 'age':'20', 'score':100, 'Tel':'15828597557', 'gender':'男'},
        {'name': 'Nancy', 'age':'22', 'score':60, 'Tel':'15108348975', 'gender':'女'},
        {'name': 'Juli', 'age':'25', 'score':12, 'Tel':'15102820528', 'gender':'女'},
        {'name': 'Ivy', 'age':'15', 'score':80, 'Tel':'13683458085', 'gender':'不明'},
        {'name': 'Jack', 'age':'17', 'score':89, 'Tel':'12345678910', 'gender':'男'}
    ]
    
    1. 统计不及格学生的个数

      count_score = 0
      for item in students:
          if item['score'] < 60:
             count_score +=1
      print('不及格的学生个数:',count_score)
      
    2. 打印不及格学生的名字和对应的成绩

      print('不及格的学生名字和对应成绩')
      for item in students:
          if item['score']<60:
              print('姓名:',item['name'],'成绩:',item['score'])
      
    3. 打印手机尾号是8的学生的名字

      for stu in students:
          if stu['Tel'][-1] == '8':
              print('姓名:',stu['name'])
      
    4. 打印最高分和对应的学生的名字

      stu_name = ''
      max_score = 0
      for stu in students:
         if stu['score']>max_score:
             max_score=stu['score']
             stu_name=stu['name']
      print('分数最高学生的姓名:',stu_name)
      
    5. 删除性别不明的所有学生

      for stu in students.copy():
          if stu['gender'] == '不明':
              students.remove(stu)
      print(students)
      
    6. 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

      sort_students = sorted(students, key=lambda students: students["score"],reverse=True)
      print(sort_students)
      
  2. 用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)

    biology = {'陆景和','左然','夏彦','莫奕','蔷薇'}
    math = {'陆景和','左然','夏彦','莫奕','蔷薇','Ivy','ben'}
    English = {'左然','夏彦','莫奕','Ivy','Jack'}
    
    1. 求选课学生总共有多少人

      print(len(biology|math|English))
      
    2. 求只选了第一个学科的人的数量和对应的名字

      print(biology-(math|English))
      
    3. 求只选了一门学科的学生的数量和对应的名字

      set1 = biology - (math | English) | math - (biology | English) | English - (biology | math)
      print('只选了一门学科的学生的数量:', len(set1), '学生姓名:', *list(set1))
      
    4. 求只选了两门学科的学生的数量和对应的名字

      set2=(biology & math - English)|(biology & English - math)|(English & math - biology)
      print('只选了两门学科的学生的数量:', len(set2), '学生姓名:', *list(set2))
      
    5. 求选了三门学生的学生的数量和对应的名字

      set3 = biology & math & English
      print('选了三门学生的学生的数量:', len(set3), '学生姓名:', *list(set3))
      
上一篇:字典 - 集合 相关操作及相关方法


下一篇:(linux)Centos6.4上搭建完整环境(教育系统)