Python笔记: Ch.7 映像&集合

字典dict

底层实现为Hash表, 基本上不会因为内容的增加而导致查询速度变慢

所以也要求一个对象能够返回哈希值

可以用hash()函数测试

dict の CURD:

创建:

这里需要区分一下:

  • {}创建的是dict
  • []创建的是list
  • ()创建的是tuple
  1. 常规创建

  2. 工厂创建

  3. fromkeys() 方法创建

    Python笔记: Ch.7 映像&集合

  4. 创建空dict, 逐一添加:

    Python笔记: Ch.7 映像&集合

访问:

  1. 通过[键值]访问:

    Python笔记: Ch.7 映像&集合

    如果键值不存在会引发错误:

    Python笔记: Ch.7 映像&集合

    最好是用in判断

  2. for访问:

    Python笔记: Ch.7 映像&集合

更新:

直接dictName[key]=newValue

删除:

  1. del删除

  2. clear()删除

    Python笔记: Ch.7 映像&集合

dict の 常用方法:

参考自博客

https://blog.****.net/qq_34979346/article/details/83654603

  1. clear()

    清空dict

  2. copy()

    浅拷贝dict
    深拷贝还得用copy.deepcopy()

  3. fromkeys()

    Python笔记: Ch.7 映像&集合

    将一个list作为keys, 并将所有的value赋为指定值

  4. get()

    通常用来代替[]获取值

    当key不存在时返回None, 或指定的default值

    Python笔记: Ch.7 映像&集合

  5. item()

    返回一个dict中所有键值对组成的list

    经常用在for循环

    Python笔记: Ch.7 映像&集合

  6. key()

    返回一个dict中所有key组成的list

    经常用在for循环中

    Python笔记: Ch.7 映像&集合

  7. pop(‘key’)

    弹出指定键值对

    popitem()

    弹出最后一个键值对

    Python笔记: Ch.7 映像&集合

  8. setdefault(key,[value=None])

    如果key存在, 则调用get()返回键值对

    否则调用set()添加键值对

    用的不多

  9. update()

    源码中说的很详细了吧

    Python笔记: Ch.7 映像&集合

集合set

集合中的元素无序不重复

Python笔记: Ch.7 映像&集合

基础操作与字典差不多, 这里说一下特殊操作

集合のCURD:

  1. 创建:

    通常使用工厂方法

    • set() 创建可变集合
    • frozenset() 创建不可变集合

常用操作

  1. 判断子集:

    使用> >= < <=

  2. 求并集|

  3. 求交集&

  4. 求相对补集-

    s - t =

    Python笔记: Ch.7 映像&集合

  5. 求对称差分^

    该集合中的元素,只能是属于集合s或者集合t的成员

Python笔记: Ch.7 映像&集合

更多常用方法现查现用

交集&

  1. 求相对补集-

    s - t =

    [外链图片转存中…(img-XeeI30Ub-1600179702964)]

  2. 求对称差分^

    该集合中的元素,只能是属于集合s或者集合t的成员

[外链图片转存中…(img-ScsP2yY6-1600179702966)]

更多常用方法现查现用