总结

字典 dict {}

    • 查单个
    字典[key]
    字典.get(键)
    字典.get(键, 默认值)
    
    • 遍历
    for 变量 in 字典:循环体
    
  • 增.改

    字典[键] = 值  # - 键不存在就添加,存在就修改
    
  • del 字典[键]   # - 销毁式删除
    字典.pop[key]  # 被删除的数据还可以拿出来用
    
  • 字典推导式

    {键:值 for 变量 in 序列}
    
  • in and not in

  • 相关函数

    • len(序列) – 求长度
    • dict(序列) – 将其他的数据转换成字典
  • 字典的相关方法

    • 字典.clear() – 清空
    • 字典.copy() – 复制
    • 字典.get(键) – 查询
    • 字典.key() – 获取所有的键,返回的是序列
    • 字典.value() – 获取所有的值,返回的是序列
    • 字典.item() – 将字典转换成元素是元组的序列(一个键值对对应一个元组)
    • 字典.setdefault(键,值) – 添加键值对,有就保留,没有就添加
    • 字典.update(序列) – 将序列中的元素添加到字典中,序列必须是可以转换成字典的序列
    • 字典1.update(字典2) – 将字典2中所有的键值对添加到字典1中
  • 集合 set {} 去重 ,集合的数学运算

    • 查 – 只能遍历
    for 变量 in 序列:循环体
    
    集合.add(元素)    --   在集合中添加指定元素
    集合.update(序列)   --   将序列中所有的元素全部添加到集合中
    
    集合.remove(元素)  --  删除指定元素,若需删除的元素不存在,则运行报错
    集合.discard(元素)  --  删除指定元素,若需删除的元素不存在,则保持原样,不报错
    
    • 集合的数学运算

      • 交集 &
      • 并集 |
      • 差集 -
      • 对称差集 ^
      • 真子集 >/<
      • 子集 >= / <=
  • 数字类型

    • 整型 int
    • 浮点型 float
    • 布尔值 bool
    • 复数 complex

作业

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

    1. 统计不及格学生的个数
    message = [{'name': '小李', 'age': 17, 'grade': 80, 'tel': '12348', 'gender': '男'},{'name': '小王', 'age': 19, 'grade': 55, 'tel': '12346', 'gender': '女'},{'name': '小宋', 'age': 20, 'grade': 81, 'tel': '12344', 'gender': '女'},{'name': '小雷', 'age': 21, 'grade': 90, 'tel': '12335', 'gender': '男'},{'name': '小贺', 'age': 20, 'grade': 40, 'tel': '12338', 'gender': '不明'},{'name': '小郭', 'age': 19, 'grade': 79, 'tel': '12341', 'gender': '男'}]
    count = 0
    for r in message:if r['grade'] < 60:count += 1
    print('不及格学生的个数:', count)
    
    1. 打印不及格学生的名字和对应的成绩
    message = [{'name': '小李', 'age': 17, 'grade': 80, 'tel': '12348', 'gender': '男'},{'name': '小王', 'age': 19, 'grade': 55, 'tel': '12346', 'gender': '女'},{'name': '小宋', 'age': 20, 'grade': 81, 'tel': '12344', 'gender': '女'},{'name': '小雷', 'age': 21, 'grade': 90, 'tel': '12335', 'gender': '男'},{'name': '小贺', 'age': 20, 'grade': 40, 'tel': '12338', 'gender': '不明'},{'name': '小郭', 'age': 19, 'grade': 79, 'tel': '12341', 'gender': '男'}]
    for i in message:if i['grade'] < 60:print('不及格学生的名字:', i['name'], '成绩:', i['grade'])
    
    1. 统计未成年学生的个数
    message = [{'name': '小李', 'age': 17, 'grade': 80, 'tel': '12348', 'gender': '男'},{'name': '小王', 'age': 19, 'grade': 55, 'tel': '12346', 'gender': '女'},{'name': '小宋', 'age': 20, 'grade': 81, 'tel': '12344', 'gender': '女'},{'name': '小雷', 'age': 21, 'grade': 90, 'tel': '12335', 'gender': '男'},{'name': '小贺', 'age': 20, 'grade': 40, 'tel': '12338', 'gender': '不明'},{'name': '小郭', 'age': 19, 'grade': 79, 'tel': '12341', 'gender': '男'}]
    count1 = 0
    for a in message:if a['age'] < 18:count1 += 1
    print('未成年学生的个数:', count1)
    
    1. 打印手机尾号是8的学生的名字
    message = [{'name': '小李', 'age': 17, 'grade': 80, 'tel': '12348', 'gender': '男'},{'name': '小王', 'age': 19, 'grade': 55, 'tel': '12346', 'gender': '女'},{'name': '小宋', 'age': 20, 'grade': 81, 'tel': '12344', 'gender': '女'},{'name': '小雷', 'age': 21, 'grade': 90, 'tel': '12335', 'gender': '男'},{'name': '小贺', 'age': 20, 'grade': 40, 'tel': '12338', 'gender': '不明'},{'name': '小郭', 'age': 19, 'grade': 79, 'tel': '12341', 'gender': '男'}]
    for b in message:if int(b['tel']) % 10 == 8:print('手机尾号是8的学生:', b['name'])
    
    1. 打印最高分和对应的学生的名字
    message = [{'name': '小李', 'age': 17, 'grade': 80, 'tel': '12348', 'gender': '男'},{'name': '小王', 'age': 19, 'grade': 55, 'tel': '12346', 'gender': '女'},{'name': '小宋', 'age': 20, 'grade': 80, 'tel': '12344', 'gender': '女'},{'name': '小雷', 'age': 21, 'grade': 90, 'tel': '12335', 'gender': '男'},{'name': '小贺', 'age': 20, 'grade': 40, 'tel': '12338', 'gender': '不明'},{'name': '小郭', 'age': 19, 'grade': 80, 'tel': '12341', 'gender': '男'}]
    max_grade = message[0]['grade']
    for b in message:if b['grade'] > max_grade:print('最高分学生的名字:', b['name'], '成绩:', b['grade'])
    
    1. 删除性别不明的所有学生
    message = [{'name': '小李', 'age': 17, 'grade': 80, 'tel': '12348', 'gender': '男'},{'name': '小王', 'age': 19, 'grade': 55, 'tel': '12346', 'gender': '女'},{'name': '小宋', 'age': 20, 'grade': 80, 'tel': '12344', 'gender': '女'},{'name': '小雷', 'age': 21, 'grade': 90, 'tel': '12335', 'gender': '男'},{'name': '小贺', 'age': 20, 'grade': 40, 'tel': '12338', 'gender': '不明'},{'name': '小郭', 'age': 19, 'grade': 80, 'tel': '12341', 'gender': '男'}]
    for v in message:if v['gender'] == '不明':message.remove(v)
    print(message)
    
    1. 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
    message = [{'name': '小李', 'age': 17, 'grade': 80, 'tel': '12348', 'gender': '男'},{'name': '小王', 'age': 19, 'grade': 55, 'tel': '12346', 'gender': '女'},{'name': '小宋', 'age': 20, 'grade': 81, 'tel': '12344', 'gender': '女'},{'name': '小雷', 'age': 21, 'grade': 90, 'tel': '12335', 'gender': '男'},{'name': '小贺', 'age': 20, 'grade': 40, 'tel': '12338', 'gender': '不明'},{'name': '小郭', 'age': 19, 'grade': 79, 'tel': '12341', 'gender': '男'}]
    new_grade = []
    message_new = []
    for r in message:new_grade.append(r['grade'])
    new_grade1 = sorted(new_grade, reverse=True)
    print(new_grade1)
    for i in new_grade1:for r in message:if i == r['grade']:message_new.append(r)
    print('学生成绩从大到小排序:', message_new)
    
  2. 用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)

    math1_name = {'张三', '王五', '刘玉', '宋金', '孟非', '王佳玉', '雷晓武', '李美英', '刘晓华', '贺德娃', '郭新路'}
    chinese_name = {'张雪', '王柳', '刘玉', '宋海', '梦晓', '王晓', '雷蕾', '李梅', '刘柳', '雷晓武', '王五', '王佳玉'}
    english_name = {'刘玉', '宋海', '张三', '孟非', '王佳玉', '莉莉', '赫赫', '果果', '王旺', '李莉', '周舟', '周玉玉'}
    
    1. 求选课学生总共有多少人
    math1_name = {'张三', '王五', '刘玉', '宋金', '孟非', '王佳玉', '雷晓武', '李美英', '刘晓华', '贺德娃', '郭新路'}
    chinese_name = {'张雪', '王柳', '刘玉', '宋海', '梦晓', '王晓', '雷蕾', '李梅', '刘柳', '雷晓武', '王五', '王佳玉'}
    english_name = {'刘玉', '宋海', '张三', '孟非', '王佳玉', '莉莉', '赫赫', '果果', '王旺', '李莉', '周舟', '周玉玉'}
    new_name1 = math1_name | chinese_name | english_name
    print(len(new_name1))
    
    1. 求只选了第一个学科的人的数量和对应的名字
    math1_name = {'张三', '王五', '刘玉', '宋金', '孟非', '王佳玉', '雷晓武', '李美英', '刘晓华', '贺德娃', '郭新路'}
    chinese_name = {'张雪', '王柳', '刘玉', '宋海', '梦晓', '王晓', '雷蕾', '李梅', '刘柳', '雷晓武', '王五', '王佳玉'}
    english_name = {'刘玉', '宋海', '张三', '孟非', '王佳玉', '莉莉', '赫赫', '果果', '王旺', '李莉', '周舟', '周玉玉'}
    new_name2 = math1_name - chinese_name - english_name
    print(len(new_name2))
    print(new_name2)
    
    1. 求只选了一门学科的学生的数量和对应的名字
    math1_name = {'张三', '王五', '刘玉', '宋金', '孟非', '王佳玉', '雷晓武', '李美英', '刘晓华', '贺德娃', '郭新路'}
    chinese_name = {'张雪', '王柳', '刘玉', '宋海', '梦晓', '王晓', '雷蕾', '李梅', '刘柳', '雷晓武', '王五', '王佳玉'}
    english_name = {'刘玉', '宋海', '张三', '孟非', '王佳玉', '莉莉', '赫赫', '果果', '王旺', '李莉', '周舟', '周玉玉'}
    new_name3 = math1_name ^ chinese_name ^ english_name
    print(len(new_name3))
    print(new_name3)
    
    1. 求只选了两门学科的学生的数量和对应的名字
    math1_name = {'张三', '王五', '刘玉', '宋金', '孟非', '王佳玉', '雷晓武', '李美英', '刘晓华', '贺德娃', '郭新路'}
    chinese_name = {'张雪', '王柳', '刘玉', '宋海', '梦晓', '王晓', '雷蕾', '李梅', '刘柳', '雷晓武', '王五', '王佳玉'}
    english_name = {'刘玉', '宋海', '张三', '孟非', '王佳玉', '莉莉', '赫赫', '果果', '王旺', '李莉', '周舟', '周玉玉'}
    new_name_1 = math1_name & chinese_name
    new_name_2 = chinese_name & english_name
    new_name_3 = math1_name & english_name
    new_name4 = (new_name_3 ^ new_name_2) | (new_name_3 ^ new_name_1) | (new_name_1 ^ new_name_2)
    print(len(new_name4))
    print(new_name4)
    
    1. 求选了三门学生的学生的数量和对应的名字
    math1_name = {'张三', '王五', '刘玉', '宋金', '孟非', '王佳玉', '雷晓武', '李美英', '刘晓华', '贺德娃', '郭新路'}
    chinese_name = {'张雪', '王柳', '刘玉', '宋海', '梦晓', '王晓', '雷蕾', '李梅', '刘柳', '雷晓武', '王五', '王佳玉'}
    english_name = {'刘玉', '宋海', '张三', '孟非', '王佳玉', '莉莉', '赫赫', '果果', '王旺', '李莉', '周舟', '周玉玉'}
    new_name5 = math1_name & chinese_name & english_name
    print(len(new_name5))
    print(new_name5)
    

day7-字典和集合作业相关推荐

  1. day7字典和集合作业

    1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名.年龄.成绩(单科).电话.性别(男.女.不明) info = [('姓名','小小'),('年龄',19),('成绩',100),('电话' ...

  2. Python Day7字典与集合

    一字典的应用 字典数据以键值对形式出现,字典数据和数据顺序无关,即不支持下标,无论数据                          顺序如何变化,只需按照对应的键的名字查找数据即可. 二字典的语 ...

  3. iOS 开发 OC编程 字典和集合 排序方法

    // //  main.m //  oc- 05 字典和集合 // //  Created by dllo on 15/10/29. //  Copyright (c) 2015年 dllo. All ...

  4. python内置函数可以返回列表元组_Python内置函数()可以返回列表、元组、字典、集合、字符串以及range对象中元素个数....

    Python内置函数()可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. 青岛远洋运输有限公司冷聚吉船长被评为全国十佳海员.()A:错B:对 有源逆变是将直流电逆变成其它频率的交流 ...

  5. 字典与集合_月隐学python第8课

    一.字典 字典属于无序列,元素存放无序,是通过哈希方式进行数据存取的,字典是一个可变容器,字典中保存一个的键值对: key : value.我们通过key来获取对应的值,很类似我们的汉语字典. 字典中 ...

  6. python元素元组抓7_Python7元组,字典,集合

    1. 元组简介 元组基本介绍 元组表现形式tuple 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他 情况下基本都用列表) 使用()创建元素 元组不是空元组至少有一个逗号(,) ...

  7. 菜鸟学IT之python3关于列表,元组,字典,集合浅认识!

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753 一.列表,元组,字典,集合分别如何增删改查及遍历. 列表 # 列表的 ...

  8. python语言基础(六)列表、元组、字典、集合

    列表(list) 列表介绍(掌握) 列表好比是盒子,把班级的学生的名字都放到盒子里. 列表是 Python 中最基本也是最常用的数据结构之一,它是一个 有序可重复的元素集合,是序列.从数据结构角度看, ...

  9. 字典、集合、控制语句

    字典介绍 字典是"键值对"的无序可变序列,字典中的每个元素都是一个"键值对",包含:"键对象"和"值对象".可以通过&q ...

  10. python基础学习笔记9:元组、字典、集合

    元组的定义与使用 1.为什么需要元组 思考 如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做? 答:列表?列表可以一次性存储多个数据,但是列表中的数据允许更改. num_list = [10 ...

最新文章

  1. statpot:使用mongo+bootstrap+highcharts做统计报表
  2. 《Drupal实战》——1.9 小结
  3. FD_CLOEXEC用法及原因_转
  4. 013_下载静态资源
  5. 用匈牙利算法求二分图的最大匹配
  6. Spring MVC之DispatcherServlet请求处理(二)
  7. Linq distinct去重方法之一
  8. ASP.NET 2.0 中动态添加 GridView 模板列
  9. “很多人,到了一定年龄才明白:不要与任何人走的太近”你怎么看?
  10. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_3_字符输出流_Writer类FileWriter类...
  11. 如何使用华为官方模拟器eNSP的12800为后续SDN实验做好准备
  12. Access根据出生日期计算年龄_从身份证号码计算年龄
  13. 工作篇-错误的代价及反思
  14. dsp和通用计算机的区别,DSP处理器与通用处理器的比较
  15. html 播放ogg,HTML5中video 和 ogg
  16. win怎么更换计算机密码错误,win10系统更改开机密码提示“Windows不能更改密码”的解决方法...
  17. 如何使用GOOGLE高级搜索技巧
  18. uni-app App端配置urlSchemes
  19. 视觉惯性单目SLAM (五)矩阵微积分
  20. 抖音seo企业号开发在线客服关键系统上线.技术源代码mvc架构搭建

热门文章

  1. 深度学习——安装Nvidia 驱动(亲测有效)
  2. 初识DNA甲基化芯片
  3. arcgis的lyr样式转qgis的sld样式
  4. 知识点:vs2017 git 操作重置、还原、挑拣对比
  5. js 鼠标放置图片展示大图并跟随鼠标移动
  6. 站在Stay老司机肩膀上分析Retrofit
  7. 北京有两个百度,李彦宏只有一个陆奇
  8. 2016二级java题型分数_2016年英语六级考试题型、试卷结构及分值比例
  9. python 列表、元组、字典、集合
  10. mistake of android