流畅的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__调用
相关推荐
问心无愧051312 小时前
ctf show web入门160 161
前端·笔记
xxie12379412 小时前
return与print
开发语言·python
秋912 小时前
从 Python 后端工程师转型 AI Engineer(AI 工程化)的完整补课清单(2026实战版)
开发语言·人工智能·python
程序员二叉12 小时前
【Java】 异常高频面试题精讲 | 易错点+对比总结
java·开发语言·面试
慕木沐13 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python
Tbisnic13 小时前
AI大模型学习第十一天:技术选型、安全防护与金融实战
python·学习·ai·大模型·提示词工程
Roann_seo%13 小时前
C++文件操作完全指南:从文本读写到二进制文件处理
开发语言·c++
hboot14 小时前
AI工程师第一课 - Python
前端·后端·python
huangdong_14 小时前
淘宝商品SKU图自动分类技术深度解析:从DOM解析到智能归档
开发语言·javascript·ecmascript
阿正的梦工坊14 小时前
【Rust】12-借用检查器与非词法生命周期
开发语言·后端·rust