流畅的python笔记

3.1 泛映射类型

  • collections.abc 模块中有Mapping和MutableMapping这俩个抽象类,作用是为dict和其他类似的类型定义形式接口

  • a = dict(one=1, two=2, three=3)

  • b = {'one':1, 'two': 2, 'three': 3}

  • c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))

  • d = dict([('two', 2), ('one', 1), ('three', 3)])

  • e = dict({'three': 3, 'one': 1, 'two': 2})

  • a == b == c == d == e # True

3.2 字典推导

3.3 常见的映射方法

  • dict
  • collections.defaultdict
  • collections.OrderedDict
用setdefault处理找不到的键
  • my_dict.setdefault(key, []).append(new_value)

3.4 映射的弹性键查询

  • 处理找不到的键:
    • defaultdict
      • 如果有字典 dd = defaultdict(list), 如果键'new-key'在dd中还不存在的话
        • 调用list()来建立一个新列表
        • 把这个新列表作为值,'new-key'作为他的键,放到dd中
        • 返回这个列表的引用
    • 自己定义一个dict的子类,实现__missing__方法
      • __missing__方法只会被__getitem__调用
相关推荐
游乐码10 分钟前
c#ArrayList
开发语言·c#
ZhiqianXia12 分钟前
PyTorch 学习笔记(14):PyTorch/LLVM 编译栈
pytorch·笔记·学习
C+++Python13 分钟前
Python MCP Server 最简实现
开发语言·python
MinterFusion19 分钟前
如何在openKylin 2.0 SP2中安装Qt(v0.2.2)(上)
开发语言·qt·软件开发·系统维护·明德融创·openkylin
zhuhezhang21 分钟前
一个用python开发的文本对比工具
python·文本对比工具
智算菩萨22 分钟前
【Python图像处理】5 Pillow图像处理与格式转换
图像处理·python·pillow
前端小D29 分钟前
JS模块化
开发语言·前端·javascript
无限码力29 分钟前
华为OD技术面真题 - JAVA开发- spring框架 - 7
java·开发语言·华为od·华为od面试真题·华为odjava八股文·华为odjava开发题目·华为odjava开发高频题目
人工干智能31 分钟前
科普:%%matplotlib inline:魔法命令 (Cell Magic)
python·matplotlib
05大叔34 分钟前
优化器Adam,神经网络处理文本,CNN,RNN
开发语言·python·机器学习