流畅的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__调用
相关推荐
光影少年3 分钟前
react离线缓存、图片缓存方案
开发语言·前端·javascript·react native·react.js·缓存·前端框架
鸿芯微控科技3 分钟前
MFC关断后还有流量怎么办?零流量、阀门泄漏、压差与Python分析
c++·python·mfc·质量流量控制器·关断泄漏·零流量测试
SomeB1oody7 分钟前
【RustyML入门】3.7. 循环层
开发语言·后端·机器学习·rust·教程
点云-激光雷达-Slam-三维牙齿2 小时前
速度起飞 笔记本电脑6G显卡llama运行Qwen3.6 35BA3B MTP 大模型
人工智能·python·电脑·llama
言乐63 小时前
Python游戏水平测试辅助系统
开发语言·python·游戏·django·pygame
青山是哪个青山8 小时前
LangChain 学习笔记(四):Message 与提示词模板
笔记·学习·langchain
从零开始学习人工智能9 小时前
【踩坑实录】WSL2 解决 onnxruntime\-gpu ImportError: libcudart\.so\.13 无 CUDA13 运行库问题
python
WWJA王文举10 小时前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
卷无止境10 小时前
在 awesome-fastapi 里,哪些库值得一看?
后端·python
zhanghaha131411 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json