1️⃣ 不可变序列(可 hash,能当 dict 键)
| 类型 | 关键字 | 核心特点 | 常用场景 | 速记代码 |
|---|---|---|---|---|
| int | int() | 任意精度 | 计数、ID | 10**100 # 秒算超大阶乘 |
| float | float() | 双精度 64b | 科学计算 | round(3.1415, 2) |
| bool | bool() | True/False 子类 int | 逻辑开关 | is_ok = path.exists() |
| str | str() | Unicode,不可变 | 文本处理 | '{{}}'.format('插槽') |
| bytes | b'' | 8-bit 不可变 | 网络/文件原始流 | b'GET / HTTP/1.1\r\n' |
| tuple | () | 有序只读 | 函数多返、dict 键 | return x, y # 打包 |
彩蛋口诀:**“int float bool 算数走,str bytes 文本流,tuple 打包键值留”**🎵
2️⃣ 可变序列(原地改,注意别名陷阱)
| 类型 | 关键字 | 核心特点 | 常用场景 | 一行演示 |
|---|---|---|---|---|
| list | [] | 动态数组 | 堆栈/队列/收集器 | lst[::-1] # 翻转 |
| bytearray | bytearray() | 可变 bytes | 二进制协议拼接 | ba.remove(0x00) |
注意:lst2 = lst1 只是引用,深拷贝用 copy.deepcopy 或 lst1.copy()
3️⃣ 映射类型(键→值,O(1) 查找)
| 类型 | 关键字 | 核心特点 | 常用场景 | 一行演示 |
|---|---|---|---|---|
| dict | {} | 插入有序*,key 唯一 | 配置/JSON/计数 | {k: v for k, v in zip(keys, vals)} |
| collections.defaultdict | 工厂默认值 | 免 if 初始化 | dd = defaultdict(int) | |
| collections.OrderedDict | 保持插入序 | 老代码兼容 | Py3.7+ 原生 dict 已有序* |
* Python 3.7 起官方保证 dict 插入有序,性能还涨📈
4️⃣ 集合类型(去重、交并差)
| 类型 | 关键字 | 核心特点 | 常用场景 | 一行演示 |
|---|---|---|---|---|
| set | set() | 无序不重复 | 去重、存在测试 | set(lst) - blacklist |
| frozenset | frozenset() | 不可变集合 | 当 dict 键 | fs = frozenset({1, 2}) |
5️⃣ 其他内置宝藏(常被忽略)
| 类型 | 关键字 | 核心特点 | 常用场景 | 一行演示 |
|---|---|---|---|---|
| NoneType | None | 单例空对象 | 默认返回值/可选 | def foo(x=None): |
| range | range() | 惰性数列 | 循环 & 切片 | list(range(5, 0, -1)) |
| enumerate | enumerate() | 索引+元素迭代 | 循环要序号 | for i, v in enumerate(lst): |
| zip | zip() | 拉链迭代 | 多列表同步 | dict(zip(keys, vals)) |
6️⃣ 可变性 ⇨ 函数传参坑⚠️
def add_one(lst: list):
lst.append(1) # 原地改
a = [0]
add_one(a)
print(a) # [0, 1] ← 外部同步变
不想被改?传副本
func(a.copy())或用 tuple
7️⃣ 类型判断 3 连招 🕵️
isinstance(obj, (int, float)) # 推荐:支持继承
type(obj) is int # 精确类型
hasattr(obj, "__iter__") # 是否可迭代
8️⃣ 彩蛋:一行打印所有内置类型名📜
import builtins
print([name for name, obj in vars(builtins).items()
if isinstance(obj, type) and not name.startswith('_')])
🏁 口诀总结(背它!)
“不可变:int float bool str bytes tuple
可变:list bytearray dict set
**映射 dict 有序快,集合 set 去重嗨,None 空值默认在!”**🎵