


























在 Python 3 开发中,数据类型与数据结构是构建程序的基础。Python 提供了丰富、灵活的内置类型,同时也支持通过标准库或自定义类扩展。下面从基本数据类型和容器数据结构两个维度进行梳理,并补充说明可变性与常用模块。
这些类型用于表示单个值,大多数是不可变的。
| 类型 | 示例 | 说明 |
|---|---|---|
int |
42, -7, 0x1F |
任意大小的整数,支持二进制、十六进制 |
float |
3.14, -0.001, 1.2e-5 |
双精度浮点数,符合 IEEE 754 标准 |
complex |
3+4j, 1.2-0.5j |
复数,实部和虚部均为浮点数 |
bool |
True, False |
布尔值,是 int 的子类(True=1, False=0) |
str |
'hello', "world", """多行""" |
Unicode 字符串,不可变序列 |
bytes |
b'\x61\x62', b"abc" |
不可变的字节序列,常用于二进制 I/O |
bytearray |
bytearray([65,66]) |
可变的字节序列 |
NoneType |
None |
表示空值或缺失值,只有一个实例 |
Python 内置了多种容器,各有其特性与适用场景。
| 类型 | 可变性 | 示例 | 特点 |
|---|---|---|---|
list |
可变 | [1, 2, 'a'] |
最常用的动态数组,支持增删改查、切片、嵌套,可存储任意类型元素 |
tuple |
不可变 | (1, 2, 'a') |
固定长度的序列,常用于多返回值、字典键、集合元素 |
range |
不可变 | range(5) |
表示整数等差数列,内存占用极低(仅存储 start, stop, step) |
str |
不可变 | "abc" |
字符串在行为上也是序列,支持索引和切片 |
bytes |
不可变 | b'abc' |
与 str 类似,但元素是 0~255 的整数 |
bytearray |
可变 | bytearray(b'abc') |
可变的字节序列 |
| 类型 | 可变性 | 示例 | 特点 |
|---|---|---|---|
dict |
可变 | {'name': 'Alice', 'age': 30} |
基于哈希表实现,键必须可哈希(不可变类型),查找、插入、删除的平均时间复杂度 O(1) |
| 类型 | 可变性 | 示例 | 特点 |
|---|---|---|---|
set |
可变 | {1, 2, 3} |
无序、元素唯一,支持并交差等数学运算 |
frozenset |
不可变 | frozenset([1,2]) |
可作为字典键或集合元素 |
虽然在 Python 中没有专门的“栈”“队列”关键字,但可以用现有类型方便地模拟:
list 的 append() 压入,pop() 弹出。collections.deque 两端操作效率高于 list,使用 append() 入队,popleft() 出队。heapq 模块(最小堆)或 queue.PriorityQueue。list 是动态数组,deque 是双端队列(底层为块状数组)。| 模块/类 | 说明 |
|---|---|
collections.namedtuple |
通过名称访问字段的轻量级不可变数据类,比自定义类更省内存 |
collections.deque |
双端队列,两端 O(1) 的 append/pop,适合队列和栈 |
collections.Counter |
字典子类,用于统计可哈希元素的出现次数 |
collections.OrderedDict (Python 3.7+ 中普通 dict 已保留插入顺序) |
记住键的插入顺序(3.7+ 中 dict 已具备此特性,但 OrderedDict 提供了额外的 move_to_end 等方法) |
collections.defaultdict |
当键缺失时返回默认值,避免 KeyError |
heapq |
基于列表实现堆队列(优先队列) |
array.array |
存储同类型数值的紧凑数组,比 list 更节省内存 |
enum.Enum |
定义枚举类型,增加代码可读性 |
int, float, str, tuple, frozenset, bytes, bool, NoneTypelist, dict, set, bytearraytype(obj), isinstance(obj, type)int(), float(), str(), list(), tuple(), dict(), set() 等掌握这些数据类型与数据结构,能够编写出高效、简洁且符合 Python 风格的代码。根据实际场景选择合适的类型(例如需要快速查找用字典,需要唯一无序元素用集合,需要 FIFO 用 deque),是 Python 开发的重要技能。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。