当前位置:首页>python>Python(五)序列详解

Python(五)序列详解

  • 2026-10-11 08:05:44
Python(五)序列详解

Python 序列详解

索引、切片与常用操作一网打尽

Python 学习笔记 · 第五篇

学完了字符串,你其实已经接触过一种序列了。Python 里的序列不止字符串,还有列表、元组等,它们共享一套操作方式——索引、切片、相加、相乘、成员判断……今天就把这些通用操作一次性讲透,后面学列表和元组就轻松了。

01什么是序列基础概念

想象你有一排储物柜,每个柜子都有编号,从 0 开始往后排。你想知道第 5 个柜子里放了什么,直接报编号就行——这大概就是 Python 序列最直观的模样。

序列(Sequence)就是一种「按顺序排列的数据集合」。字符串是字符的序列,列表是元素的序列,元组也是序列。它们内部存放数据的方式都差不多,所以学会了一套操作,就能用在所有序列类型上。

💡 小贴士

理解了序列的通用操作,后面学列表、元组就是换了个数据类型,操作都一样,省时又省力!

◆ ─────── ◆
02索引——用编号找元素核心操作

储物柜有编号,序列里的元素也有编号。在 Python 中,这个编号叫做索引(Index)。

正向索引:从 0 开始

正向索引从 0 开始数,第一个元素索引是 0,第二个是 1,以此类推。这点是很多新手容易搞混的地方——一定要记住,Python 从 0 开始计数,不是从 1。

负向索引:从 -1 开始

Python 还支持负数索引,-1 表示倒数第一个元素,-2 表示倒数第二个,依此类推。负向索引从 -1 开始,往左依次递减。

Python
fruits = ['苹果', '香蕉', '橘子', '葡萄', '西瓜']# 正向索引print(fruits[0])   # 苹果print(fruits[4])   # 西瓜# 负向索引print(fruits[-1])  # 西瓜print(fruits[-5])  # 苹果

💡 小贴士

负索引特别适合取末尾元素,不用先算长度。fruits[-1] 永远是最后一个,比 fruits[len(fruits)-1] 简洁多了!

◆ ─────── ◆
03切片——取一段元素核心操作

如果索引是找单个柜子,那切片就是一次打开一段相邻的柜子。就像看视频时拖动进度条,截取其中一段内容。

基本语法

切片的写法是 序列[起始:结束:步长],三个参数都是可选的:

start:起始位置(默认为 0)

end:结束位置(默认为序列末尾)

step:步长(默认为 1,步长为 -1 时可以反转序列)

Python
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# 取前3个print(nums[:3])     # [0, 1, 2]# 从第3个取到末尾print(nums[3:])     # [3, 4, 5, 6, 7, 8, 9]# 完整复制print(nums[:])      # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# 隔一个取一个(步长为2)print(nums[::2])    # [0, 2, 4, 6, 8]# 反转print(nums[::-1])   # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

💡 小贴士

切片是左闭右开,nums[2:5] 取的是第2、3、4个元素,不包含第5个,这是最常踩的坑!

💡 小贴士

nums[:] 是复制序列的常用写法,新列表和原列表互不影响,在处理数据时特别有用!

◆ ─────── ◆
04序列相加基础操作

同类型的序列可以用 + 拼在一起,就像把两排储物柜连起来,组成一排更长的柜子。

Python
morning = ['早起', '跑步']evening = ['看书', '睡觉']print(morning + evening)# ['早起', '跑步', '看书', '睡觉']

⚠️ 注意

不同类型的序列不能相加!列表 + 字符串会报错,需要先转换类型。比如把数字转成字符串,或者用 join() 方法来处理。

◆ ─────── ◆
05序列相乘基础操作

用序列乘以一个数字 n,就相当于把这个序列重复 n 次。这在初始化列表时特别有用。

Python
cheer = '加油!'print(cheer * 3)# 加油!加油!加油!# 初始化一个长度为5的列表empty = [0] * 5print(empty)# [0, 0, 0, 0, 0]

💡 小贴士

[0] * n 是初始化固定长度列表的常用技巧,但注意嵌套列表要用列表推导式,不然会踩引用的坑!

◆ ─────── ◆
06成员判断基础操作

想知道某个元素在不在序列里?用 in 和 not in 来判断,会返回布尔值 True 或 False。

Python
menu = ['宫保鸡丁', '鱼香肉丝', '麻婆豆腐']print('鱼香肉丝' in menu)      # Trueprint('红烧肉' in menu)        # Falseprint('红烧肉' not in menu)    # True

💡 小贴士

in 判断在条件语句里特别好用,比如 if item in shopping_list: 比 if shopping_list.count(item) > 0: 简洁得多!

◆ ─────── ◆
07常用内置函数工具函数

Python 内置了一些直接操作序列的函数,不用导入任何模块,拿来就能用。下面这张表整理了最常用的几个:

函数
作用
示例
len()
获取长度
len([1,2,3]) → 3
max()
找最大值
max([3,1,2]) → 3
min()
找最小值
min([3,1,2]) → 1
sum()
求和
sum([1,2,3]) → 6
sorted()
排序(返回新序列)
sorted([3,1,2]) → [1,2,3]
list()
转成列表
list('abc') → ['a','b','c']
str()
转成字符串
str([1,2]) → '[1, 2]'
enumerate()
带索引遍历
多用在 for 循环中

综合示例

Python
scores = [88, 72, 95, 60, 79]print('人数:', len(scores))      # 5print('最高分:', max(scores))     # 95print('最低分:', min(scores))     # 60print('平均分:', sum(scores) / len(scores))  # 78.8print('排名:', sorted(scores, reverse=True))  # [95, 88, 79, 72, 60]# enumerate 在循环中特别好用for index, score in enumerate(scores):    print(f'第{index+1}位同学:{score}分')

💡 小贴士

sorted() 返回的是新列表,不会修改原序列。如果想原地排序,用列表的 sort() 方法。

💡 小贴士

enumerate() 是 Python 的宝藏函数,遍历时同时拿到索引和值,告别 range(len()) 的丑写法!

◆ ─────── ◆

序列的这些操作是列表、元组、字符串的通用技能,掌握之后学具体类型就只剩记差异了。下一篇我们就来聊列表——Python 里最灵活的数据结构,记得关注!

关注后续更新 →

Python 学习笔记系列 | 第五篇

最新文章

随机文章