【Python入门系列】第6讲:深入解析Python中的序列(2026最新版)
序列(Sequence)是Python中最重要、最常用的数据类型之一。
几乎所有Python程序都会大量使用序列。
什么是序列?
序列是指 一组有序、可通过索引访问 的数据集合。
Python中最核心的三大内置序列是:
- 列表(list) —— 最常用、可变
- 元组(tuple) —— 不可变、速度快
- 字符串(str) —— 字符序列、不可变
它们共同拥有序列的五大通用特性,今天我们一次性讲透。
1. 序列的通用操作(所有序列都支持)
(1)索引(Index)—— 从0开始
s = ["苹果", "香蕉", "橙子", "西瓜"]
print(s[0]) # 苹果
print(s[1]) # 香蕉
print(s[-1]) # 西瓜(倒数第1个)
print(s[-2]) # 橙子(倒数第2个)
(2)切片(Slice)—— s[start:end:step]
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[2:6]) # [2, 3, 4, 5] 不包含end
print(nums[:5]) # [0, 1, 2, 3, 4] 从头开始
print(nums[5:]) # [5, 6, 7, 8, 9] 到末尾
print(nums[::2]) # [0, 2, 4, 6, 8] 步长为2
print(nums[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 逆序
切片记忆口诀:[开始:结束:步长],结束位置不包含,步长可为负。
(3)序列长度、最大值、最小值、成员判断
print(len(nums)) # 10
print(max(nums)) # 9
print(min(nums)) # 0
print(5 in nums) # True
print(99 not in nums) # True
(4)拼接与重复
a = [1, 2]
b = [3, 4]
print(a + b) # [1, 2, 3, 4]
print(a * 3) # [1, 2, 1, 2, 1, 2]
2. 列表(list)—— 最灵活的可变序列 ★★★★★
列表用 [] 定义,是Python中使用频率最高的数据类型。
# 创建列表
empty = []
fruits = ["苹果", "香蕉", "橙子"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True] # 可以放不同类型
# 常用方法(记住这些就够80%场景)
fruits.append("西瓜") # 末尾添加
fruits.insert(1, "芒果") # 指定位置插入
fruits.remove("香蕉") # 删除第一个匹配项
popped = fruits.pop() # 删除并返回最后一个(或指定索引)
fruits.pop(0) # 删除指定位置
fruits.sort() # 原地排序
fruits.reverse() # 原地反转
print(fruits.count("苹果")) # 统计出现次数
print(fruits.index("橙子")) # 查找位置
列表推导式(List Comprehension) —— Python最优雅的特性之一
# 传统写法
squares = []
for i in range(10):
squares.append(i**2)
# 推导式(一行搞定)
squares = [i**2 for i in range(10)]
# 带条件
even_squares = [i**2 for i in range(10) if i % 2 == 0]
print(even_squares) # [0, 4, 16, 36, 64]
3. 元组(tuple)—— 不可变序列 ★★★★
元组用 () 定义,一旦创建就不能修改(不能增删改元素)。
t = (1, 2, 3, 4)
print(t[0]) # 1
# 错误示范
# t[0] = 99 # TypeError: 'tuple' object does not support item assignment
元组的用途:
- 作为函数返回值(返回多个值)
- 作为字典的key(列表不能做key)
- 需要保证数据不被意外修改的场景(配置信息、安全相关)
解包(Unpacking) —— 非常好用的特性
x, y, z = (10, 20, 30)
print(x, y, z) # 10 20 30
# 忽略某些值
a, _, c = (1, 2, 3)
print(a, c) # 1 3
4. 字符串(str)—— 字符序列 ★★★★★
字符串其实也是序列,所以支持索引、切片、in 等所有序列操作。
s = "Python is awesome!"
print(s[0]) # P
print(s[-1]) # !
print(s[7:9]) # is
print("Python" in s) # True
print(len(s)) # 18
字符串常用方法(超级实用):
print(s.upper()) # 转大写
print(s.lower()) # 转小写
print(s.strip()) # 去除两端空格
print(s.split()) # 按空格分割 → 列表
print("-".join(["a", "b", "c"])) # a-b-c
print(s.replace("Python", "Java"))
格式化字符串(我们第3讲已经学过,这里再强化)
name = "重阳"
age = 25
print(f"我叫{name},今年{age}岁")
5. 三种序列对比总结表(一目了然)
| 特性 | 列表 list | 元组 tuple | 字符串 str |
|---|---|---|---|
| 可变性 | 可变 | 不可变 | 不可变 |
| 定义符号 | [] | () | "" 或 '' |
| 速度 | 较慢 | 最快 | 较快 |
| 能否做dict的key | 不能 | 能 | 能 |
| 主要用途 | 存储可修改数据 | 返回多个值、配置 | 文本处理 |
| 内存占用 | 较大 | 较小 | 较小 |
记忆口诀:
列表能增删改,元组只读最安全,字符串专攻文本,序列操作都通用!
6. 本讲练习(建议立刻动手)
- 创建一个列表,包含1~10的平方数(用列表推导式)。
- 给定一个元组
(3, 1, 4, 1, 5, 9),将其转换为排序后的列表。 - 输入一句话,统计其中英文单词的数量(用
split())。 - 用切片将字符串
"Python is great"反转输出。
把你的练习代码贴出来,我帮你检查并给出优化建议!
下一讲预告:
Python入门第7讲:Python字典(dict)与集合(set)全面详解
序列部分到此结束,接下来我们进入映射类型(字典) 和 无序集合,它们和序列一起构成了Python最核心的四大内置数据结构。
准备好了吗?
回复 “下一讲” 我们继续前进!
或者对序列的任何部分(切片、推导式、元组解包等)有疑问,现在就问我!
你已经掌握了Python的“容器基础”,非常棒!继续保持!🐍✨