很多初学者会觉得:字符串和列表好像差不多?
确实,它们在 Python 里有一个共同的“家族身份”:序列(Sequence)。
01 核心:共享的“序列基因”
为什么说它们是“一家人”?因为作为序列,它们必须遵守一套共同的生存法则。
在 Python 看来,无论是字符组成的字符串,还是万物皆可存的列表,它们都是有序排列的一排格子。
只要是序列,就一定具备以下三个特权:
1. 精准的下标访问 (Indexing)
序列中的每个元素都有一个固定的“门牌号”,从 0 开始。
"Python"[0] 拿到了 'P'
[10, 20, 30][0] 拿到了 10
2. 灵活的切片手术 (Slicing)
你可以用 [start:stop] 逻辑,从序列中切下任何一段。
3. 天生的遍历能力 (Iteration)
序列是“可迭代”的。这意味着你不需要知道它有多长,直接丢进 for 循环,它就会乖乖地一个接一个地把元素吐出来。
02 演示:索引与切片
# 字符串:字符的序列s = "Python"print(s[0]) # Pprint(s[1:4]) # yth# 列表:数据的序列l = ['P', 'y', 't', 'h', 'o', 'n']print(l[0]) # Pprint(l[1:4]) # ['y', 't', 'h']
发现了吗?
无论是处理文字还是处理数据,Python 赋予了你完全一致的工具。
03 分水岭:可变性 (Mutability)
虽然操作相似,但真正的分水岭只有一个词:👉 可变性。
🧱 字符串:不可变 (Immutable)
字符串一旦创建,就如同刻在大理石上的文字,不能修改其中的任何内容。
你可以读取它,可以切片,可以拼接生成新的字符串;
但你不能直接改某一个字符。
核心价值: 安全、稳定。因为不可变,它才能放心地作为字典的 Key。
s = "abc"s[0] = "z" # ❌ 报错:TypeError (不支持原位修改)
🔧 列表:可变 (Mutable)
列表不一样,它就像一块橡皮泥,天生就是为“变化的数据”准备的。
它允许你:修改元素、增加元素、删除元素、甚至排序。
核心价值: 灵活、高效。它承载着程序运行中动态变化的数据集合。
nums = [1, 2, 3]nums[0] = 100 print(nums) # [100, 2, 3] ✅ 成功
04 真正要理解的核心
字符串和列表都属于“序列类型”,但它们的设计目标完全不同:
字符串 → 表示文本(追求稳定)
列表 → 表示集合(追求可改)
当你开始思考“这个数据到底要不要改”时,你就开始真正理解数据结构了。
🎯 本讲总结
身份: 都是“序列”,支持下标、切片和遍历。
本质: 字符串不可变,列表可变。
应用: 理解“可变性”,是进阶 Python 开发者的必经之路。
我为你整理了一套《Python零基础保姆级教程》,这不只是干巴巴的理论,而是包含:
✅ 完整版 Python 零基础到精通完整代码
✅ 完整注释讲解,一键运行
👇 获取方式:
想要解锁 [Python保姆级教程] 的同学,可以点击下方赞赏支持博主,并在后台留言