Skip to content

Latest commit

 

History

History
134 lines (95 loc) · 3.31 KB

134-203367-是否属于_in.sy.md

File metadata and controls

134 lines (95 loc) · 3.31 KB
show version enable_checker
step
1.0
true

比较运算符

回忆

  • 上次研究了 isinstance
  • is 是关键字 判断是否相等
  • isinstance 是函数 判断是否是某类对象
  • 除了 is 和 isinstance 之外
  • 还有个 in
  • 这个 in 具体有什么说法么?
  • 查找第一手资料
  • 帮助手册

查找帮助

图片描述

  • 这个操作符是 in 和 not in
  • 类型是成员测试运算符
  • 英文 Membership test operations
  • 就是看某个东西在不在容器里是吧
  • 这个简单

动手

图片描述

  • 检查某元素是否在序列里面
  • 如果在的话就是 True
  • 如果列表元组这种序列都可以用 in
  • 那么字符序列和字节序列可以么?

字节序列和字符序列

图片描述

  • 成员测试运算符 in
  • 对于字节序列和字符序列也好用
  • 空字符 in 任何字符串
  • 空字符 甚至 in 空字符串

图片描述

  • 列表可以 in 列表么?

列表 in 列表

图片描述

  • 列表不能 in 列表
  • 列表元素能 in 列表
  • 除了序列类这种有次序的
  • 没有次序的会如何呢?

集合 in

图片描述

  • 列表不能 in 列表
  • 集合不能 in 集合
  • 集合元素 可以 in 集合
  • 映射 map 类的 dict 字典又如何呢?

字典

图片描述

  • in 字典的东西不是字典
  • 而是字典的 key
  • keys 的 list 可以么?

keys

图片描述

  • 实践证明 key 的列表是不可以的
  • 只有 key 可以
  • 字典的本质是 key-value 对的集合
  • 确认了有这个 key
  • 才能访问这个 key-value 对

确认存在

图片描述

  • 对不存在的 key 的访问
  • 要判断一下
  • 确认他是
  • 不存在的
  • 不要出现那种 KeyError

图片描述

  • 如果这个 key 存在呢?

存在的 key

图片描述

  • 这个也要提前确认
  • 因为不知道是不是真的存在
  • 字典的本质是 key-value 对的集合
  • 集合是可以删除集合项的

回到开头

图片描述

  • 现在我们可以理解这个含义了么?
  • type 得到类型
  • 判断是否这个类型是否在这个类型元组中
  • 相当于
    • isinstance((1,), (list,tuple,dict))

总结

  • 这次研究了 in
  • 字符序列和字节序列只要有子序列关系的话
    • in 就是 True
  • 元组和列表有这个元素的话
    • in 就是 True
    • 子序列是 False
  • 集合中有这个元素关系的话
    • in 就是 True
  • 字典中包含这个 key 的话
    • in 就是 True
  • 这个 not in 是什么意思呢??🤔
  • 下次再说 👋