Skip to content

Latest commit

 

History

History
155 lines (114 loc) · 3.64 KB

129-203075-映射类和集合类容器比较运算.sy.md

File metadata and controls

155 lines (114 loc) · 3.64 KB
show version enable_checker
step
1.0
true

比较运算符

回忆

  • 这次研究以下类的比较运算符
    • 字符串 str
    • 字节序列 bytes
    • 列表 list
    • 元组 tuple
  • 从头到尾按顺序比较序列中的每个元素
    • 如果有分出大小
      • 就是最终的大小
    • 如果有一方没有了元素了
      • 另一方就大
    • 如果没有分出大小就继续向后
  • 如果有嵌套的列表之类的东西
    • 就比较这两个列表
    • 如果此子列表中还有列表
    • 就继续比较下去
    • 直到分出胜负
  • 除了列表之外还有什么容器呢?🤔

映射类

图片描述

  • 映射类主要指的是字典
  • 他不能大于小于
  • 只能判断是否相等

动手

图片描述

  • 如果他们次序不同呢?

次序

图片描述

  • 映射类其实是没有次序的
    • 字典的本质是key-value pair的集合
  • 只有序列是有序的列表
  • 除了映射类的字典 dict 之外
  • 还有集合类
    • set
    • frozenSet

集合 set

图片描述

  • 可以判断是否相等
  • 或者判断是否不等

图片描述

  • 集合内部可以合并同类项
  • 大于小于如何判断呢?

大于小于

图片描述

  • 如果有从属子集关系的话
    • 超集大于子集
    • 子集小于超集
  • 如果没有从属子集关系的话
    • 就是不大于也不小于也不相等
    • 就是不等于
  • 冻结集合呢?

试一下

图片描述

  • 冻结集合基本可以理解为集合
  • 两者可以比较大小
  • 比较运算符有什么规律呢?

比较的对称性

图片描述

  • 可以对称转化
  • 除此之外还有什么特性么?

比较的传递性

图片描述

  • imply 就是暗示的意思
  • 可以判断出来
  • 除此之外还有什么特性么?

否定

图片描述

  • 不真就是假
  • 不假就是真
  • 否定之否定就是肯定

图片描述

  • 标红的最后两条只对序列类容器起作用
  • 这应该如何理解

深入

图片描述

  • 标红的两行
  • 说明两次反转与原命题等价
    • 小于就是不大于等于
    • 大于就是不小于等于

图片描述

  • 这里的 not {1} >= {1, 2}
    • 相当于 not ({1} >= {1, 2})
    • 相当于 not False
    • 结果为True

总结

  • 这次研究了以下类的比较运算符
    • 映射类 map
      • dict 字典
    • 集合类
      • set
      • frozenset
  • dict
    • 可以比较相等和不等
      • 完全一致就等
      • 不一致就不等
  • 集合类
    • set 和 frozenset 规律相同
    • 一样就相等
    • 不一样就不等
    • 有子集关系的话
    • 可以比较出大小
    • 否则比大小结果都是 False
  • 比较运算符还有
    • 对称性
    • 传递性
    • 否定之否定原理
  • 除了这些还有什么比较运算符么?🤔
  • 下次再说 👋