python列表有几种切片形式

来源:安卓APP网作者:缓存小熊猫头衔:程序员
导读:本期聚焦于小伙伴创作的《python列表有几种切片形式》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《python列表有几种切片形式》有用,将其分享出去将是对创作者最好的鼓励。

python列表的切片操作可以通过指定起始索引、结束索引和步长三个参数,灵活获取列表中的部分元素,不同的参数组合对应不同的切片形式,下面逐一介绍常见的几种切片形式。

python列表有几种切片形式

1. 基础完整切片形式

基础切片需要指定起始索引start和结束索引stop,语法为list[start:stop],切片结果包含start索引对应的元素,不包含stop索引对应的元素,索引从0开始计数。

# 定义一个测试列表
test_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 获取索引1到索引4的元素,包含索引1,不包含索引4
result = test_list[1:4]
print(result)  # 输出 [2, 3, 4]

2. 带步长的切片形式

带步长的切片在基础切片的基础上增加步长参数step,语法为list[start:stop:step],表示每隔step-1个元素取一个值,步长默认为1,步长为正数时从左向右取值。

test_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从索引0开始,到索引7结束,每隔1个元素取一个值,即步长为2
result = test_list[0:7:2]
print(result)  # 输出 [1, 3, 5, 7]

3. 反向切片形式

当步长为负数时,切片会从右向左取值,此时起始索引需要大于结束索引,否则会返回空列表,这种形式常用于获取反转后的列表或者从后向前取值。

test_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 步长为-1,从索引8开始到索引3结束,从右向左取值
result = test_list[8:3:-1]
print(result)  # 输出 [9, 8, 7, 6, 5]
# 反转整个列表
reverse_list = test_list[::-1]
print(reverse_list)  # 输出 [9, 8, 7, 6, 5, 4, 3, 2, 1]

4. 省略参数的切片形式

切片操作中三个参数都可以省略,不同的省略方式对应不同的取值逻辑,具体规则如下:

  • 省略start:默认从列表第一个元素开始取值,即start=0
  • 省略stop:默认取到列表最后一个元素,包含最后一个元素
  • 省略step:默认步长为1
test_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 省略start和stop,步长为1,获取整个列表
result1 = test_list[:]
print(result1)  # 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 省略stop,从索引2开始取到最后
result2 = test_list[2:]
print(result2)  # 输出 [3, 4, 5, 6, 7, 8, 9]
# 省略start,取到索引5之前的元素
result3 = test_list[:5]
print(result3)  # 输出 [1, 2, 3, 4, 5]
# 省略start和stop,步长为2
result4 = test_list[::2]
print(result4)  # 输出 [1, 3, 5, 7, 9]

5. 索引越界的切片形式

列表切片操作允许起始索引和结束索引超出列表的实际长度,不会出现索引越界错误,超出部分会被自动忽略,按照实际存在的元素范围取值。

test_list = [1, 2, 3, 4, 5]
# 结束索引超出列表长度,实际取到列表最后一个元素
result = test_list[2:10]
print(result)  # 输出 [3, 4, 5]
# 起始索引超出列表长度,返回空列表
result2 = test_list[10:12]
print(result2)  # 输出 []

不同切片形式对比

下面通过表格总结不同切片形式的特点和适用场景:

切片形式语法示例特点适用场景
基础切片list[1:4]指定起止范围,左闭右开获取连续的一段元素
带步长切片list[0:7:2]可控制取值间隔间隔取值、跳选元素
反向切片list[8:3:-1]步长为负,从右向左取值反转列表、从后向前取值
省略参数切片list[:5]参数可灵活省略,有默认取值快速取前N个、后N个元素
越界切片list[2:10]不会报错,自动忽略越界部分不确定列表长度时取值

注意事项

切片操作返回的是一个新的列表对象,不会修改原列表,这一点和通过索引修改元素不同。如果原列表后续被修改,不会影响已经通过切片得到的新列表。

test_list = [1, 2, 3, 4, 5]
slice_result = test_list[1:3]
# 修改原列表
test_list[1] = 100
print(test_list)  # 输出 [1, 100, 3, 4, 5]
print(slice_result)  # 输出 [2, 3],不受原列表修改影响

python列表列表切片切片语法切片操作修改时间:2026-07-04 16:21:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。