章节摘要:列表、元组、字典、集合、字符串是 Python 的五大内置容器。本章不按 API 手册讲,而按三条解释器视角的线索重讲一遍:可变性决定了谁能当字典键;哈希性决定了谁能进集合;内存布局决定了各自的操作成本。读完你能凭原理选对容器,而不是靠背。
阅读完本章,你应当能够:
可变性与哈希性是一枚硬币的两面:不可变才可哈希,可哈希才能做键——这条规则筛掉了你九成的容器误用。
两大序列容器的内存布局、过度分配策略、以及 tuple 的"轻量但不平凡"。
dict 的哈希表结构与扩容机制,set 作为"只有键的 dict",以及有序性保证的由来。
str 的不可变设计、f-string 与 format 的用法地图、编码问题的一句话真相。
三节共用一个分析框架(可变性、哈希性、内存布局),但侧重点递进:
list/tuple(2.1) 最基础的连续序列,可变性对比最鲜明 │ 哈希性引入 ▼ dict/set(2.2) 用哈希把查找降到常数,键的规则由此而来 │ 不可变序列的极致 ▼ str(2.3) 不可变 + 驻留 + 编码,兼讲格式化输出