admin 发布于2026-09-04 阅读(0)
扫一扫,手机访问
“python数据类型”最容易学成一张定义表:字符串是文本,列表能放多个值,字典保存键值对。真正写代码时,出错往往不是因为没背定义,而是不知道该选哪一种,或者忽略了对象能不能被修改。
下面用访问方式、可变性和典型场景把常用内置类型放在一起比较。示例只演示语言行为,未连接外部业务数据,复制到本地 Python 环境即可自行验证。

图:常用 Python 内置数据类型和可变性、转换关系的总览。
先记住一个判断顺序:数据是单个值还是一组值?需要按位置还是按键访问?创建后是否还要修改内容?这三个问题通常比死记类名更快。
字符串是不可变序列,可以按下标读取,但不能直接改某个位置:
name = "python"
print(name[0]) # p
print(name.upper()) # PYTHON,返回新字符串
# name[0] = "P" # TypeError:字符串不能原地修改
name = "P" + name[1:]
需要频繁拼接大量片段时,使用列表收集后再 "".join(parts),比循环里反复创建字符串更容易控制意图。
列表适合“顺序明确、后续会增删”的数据;元组适合表示固定记录:
tasks = ["设计", "开发"]
tasks.append("测试")
tasks[0] = "方案设计"
point = (120, 80)
# point[0] = 0 # TypeError:元组不可变
不可变不等于“完全不能包含可变对象”。例如元组里放一个列表,列表自身仍可修改;因此把元组当作字典键时,还要确保其中所有成员都是可哈希的。
如果数据有明确的字段名,字典通常比多个并行列表更清楚:
user = {"id": 7, "name": "Lin", "active": True}
if user.get("active", False):
print(user["name"])
user["role"] = "editor"
user["name"] 在键缺失时会抛出 KeyError,适合“缺失就是错误”的场景;get 适合可选字段。不要为了避免异常把所有访问都改成 get,否则数据问题可能被默认值掩盖。
集合没有重复元素,适合去重和判断成员是否存在:
tags = {"python", "sql", "python"}
print(tags) # {'python', 'sql'},顺序不应作为业务依据
if "python" in tags:
print("已包含 Python 标签")
需要保留输入顺序时,不要直接用集合替代列表。可以用 dict.fromkeys(values) 在现代 Python 中完成稳定去重,再根据需求转换回列表。

图:从“要不要修改内容”出发,快速选择列表、字典、集合、元组或字符串。
| 需求 | 优先考虑 | 原因 |
|---|---|---|
| 一段文本 | str | 不可变,接口清晰 |
| 有序且会增删 | list | 按位置访问,修改方便 |
| 固定的多项记录 | tuple | 不希望被意外改动 |
| 字段名到字段值 | dict | 按键访问,表达属性关系 |
| 去重或成员判断 | set | 不保存重复项,查成员直接 |
list、dict、set 是可变对象,作为函数默认参数时不要直接写空列表或空字典。== 比较值是否相等,is 判断是否为同一个对象;业务判断通常使用 ==。int("12.5") 会抛出 ValueError,外部输入要显式处理。学习 python数据类型时,先问“怎么访问”和“要不要修改”,再决定用什么容器。字符串和元组强调稳定,列表、字典和集合强调操作便利;把这些差异落到输入校验和函数边界里,代码会比单纯背定义更可靠。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8