Python列表切片原理与索引操作详解

Dylan
Dylan
发布时间:2026-10-13| 3人浏览过
原创

本文深入解析Python中列表及有序序列的切片机制。详细讲解正向与负向索引的访问方式,阐述切片语法[start:end:step]中各参数的作用及省略规则。重点分析步长正负对切片方向的影响,以及start和end混合使用时需保持与step方向一致的逻辑。同时说明切片生成的是源序列元素的浅拷贝,确保数据操作的准确性。

通过索引可以直接获取列表中的特定元素,这种访问方式支持随机读取。

列表元素允许使用索引进行访问,其中正向索引从数字0开始计数。

colors=["red","blue","green"]

colors[0] =="red"

colors[1]=="blue"

此外,Python中的有序序列均支持负向索引访问。

colors[-1]=="green"

       

接下来介绍列表的切片操作。

切片并非列表独有,Python中的所有有序序列(如字符串、元组)均支持此操作。

切片返回的数据类型与源对象类型保持一致,结果为源序列的子序列。例如,对列表进行切片会返回一个新的列表。

对字符串进行切片则返回字符串类型。

切片生成的子序列包含源序列元素的副本,因此切片操作本质上属于浅拷贝。

li=["A","B","C","D"]

标准格式为:li[start : end : step]。

start代表切片起始索引,end代表切片结束索引(结果不包含该索引对应的值),step为步长,默认值为1。

t=li[0:3] ["A","B","C"] #当起点索引为0时可省略,写作t=li[:3]。

t=li[2: ] ["C","D"] #省略end参数表示切片至序列末尾。

t=li[1:3] ["B","C"]

t=li[0:4:2] ["A","C"] #指定从索引0到3的范围,并设定步长为2。

如何正确确定start和end的值及其相互关系?

当step符号固定时,start和end可以混合使用正向和负向索引,但必须保证start和end之间存在与step方向一致的元素间隔。

若start和end之间没有符合step方向的元素间隔,切片结果将为空列表。

t=li[0:2]

t=li[0:-2]

t=li[-4:-2]

t=li[-4:2]

上述示例的结果相同,t的值均为["A","B"]。



t=li[-1:-3:-1]

t=li[-1:1:-1]

t=li[3:1:-1]

t=li[3:-3:-1]

上述示例的结果相同,t的值均为["D","C"]。


t=li[-1:-3]

t=li[-1:1]

t=li[3:1]

t=li[3:-3]

以上情况均切出空列表,因为start和end之间没有与默认正步长方向一致的元素。

             

step的正负号直接决定了切片结果中元素的采集顺序。

当省略start和end时,表示以原列表的全部元素为目标。

t=li[::-1] t--->["C","B","A"] #反向切片,获取全部元素。

t=li[:] t--->["A","B","C","D"] #正向切片,获取全部元素。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。