Python 数据类型与数据结构
Python 的内置数据类型与常用数据结构。
#type / concept
#status / growing
#resource / python
#tech / lang / python
[!info] related notes
- 所属 MOC: python-moc
- 前置概念: python
- 并列概念: python函数与装饰器, python类与面向对象
- 关系笔记: python
Python 数据类型与数据结构
Python 是动态类型语言,变量无需声明类型,类型在运行时确定。
核心机制
内置数据类型
| 类别 | 类型 | 示例 |
|---|---|---|
| 数值 | int, float, complex | 42, 3.14, 1+2j |
| 文本 | str | "hello" |
| 布尔 | bool | True, False |
| 序列 | list, tuple, range | [1,2,3], (1,2,3), range(5) |
| 映射 | dict | {"key": "value"} |
| 集合 | set, frozenset | {1,2,3}, frozenset({1,2}) |
| 二进制 | bytes, bytearray, memoryview | b"hello" |
| 空值 | None | None |
可变与不可变
- 不可变:
int,float,str,bool,tuple,frozenset,bytes - 可变:
list,dict,set,bytearray,memoryview
类型检查
# 类型检查
type(42) # <class 'int'>
isinstance(42, int) # True
# 类型转换
int("42") # 42
str(42) # "42"
list("abc") # ['a', 'b', 'c']
常见误解或边界
- 整数溢出: Python 整数无固定大小限制,会自动扩展
- 浮点精度:
0.1 + 0.2 != 0.3,需用decimal模块处理精确计算 - 字符串不可变: 修改字符串会创建新对象
- 列表 vs 元组: 列表可变,元组不可变;元组可作字典键,列表不行