Python range()函数与列表切片详解

巷口听风
巷口听风
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍Python中range()函数的三种参数用法及其与循环的结合,深入解析列表切片语法,包括正反向索引、步长控制及逆序输出。通过生成A-Z列表等实例,对比ord/chr与列表推导式,帮助开发者掌握高效的数据处理技巧。

range()函数常与循环结构配合使用,能显著提升代码简洁性。本文将梳理该函数的核心用法,并结合具体示例进行说明。

首先查看函数的基本原型,其定义如下:

range(start,end [,step]) 

此外,也可以省略start参数,仅指定end值。

range(end)

其中,start代表起始索引,end代表结束索引(实际取值不包含end本身,即取到end的前一个值),step表示步长。

具体示例如下:

print(list(range(1,5)))
#list函数是将range的值列表化,这时候的输出为 1,2,3,4 (没有5!即不包括最后一个end的值)
print(list(range(1,5,2)))
#输出结果是 [1, 3] ,步长为2,而且小于5

若仅传入一个参数,则默认start为0。

print(list(range(5)))
#输出结果是 [0, 1, 2, 3, 4] ,这时候默认从0开始

结合range()与列表遍历是常见操作,例如遍历访问列表元素:

#首先我用一个range生成一个列表,其中包含0~9 10个元素
list1 =list(range(10))
# #使用range的方式进行遍历:
for i in range(len(list1)):
  print(list1[i])

#当然这种情况我们一般都是直接使用 for value in list1 就可以了
#如果使用切片,访问列表的一部分

for i in range(int(len(list1)/2)):
  print(list1[i])

#这样我们就可以得到列表中前一半元素,其他部分同理

若需实现列表逆序遍历,可通过range()实现:

list1 =list(range(10))
for i in range(len(list1)-1,0,-1):
  print(list1[i])
#注意这个地方开始的位置是len-1,因为我们使用的列表的下标,其实这里的使用与C语言是一致的,步长设置为-1
#就相当于我们在for循环的 i--了

虽然循环可在每次迭代中执行特定逻辑,但若仅需提取部分数据,利用列表切片(slice)更为便捷。切片语法灵活,基础用法如:

list1 =list(range(10))
print(list1[:])
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list1[3:])
# [3, 4, 5, 6, 7, 8, 9]
print(list1[3:5])
# [3, 4]
print(list1[1:5:2])
# [1, 3]

可见切片参数逻辑与range()高度相似,均包含起始、结束及步长三个维度。在range中可使用-1作为步长,切片同样支持。列表元素既拥有正向索引,也拥有反向索引:最后一个元素记为list1[-1],倒数第二个为list1[-2],依此类推。

print(list1[1:-1])
# 这里表示从第一个元素到最后一个元素

若需逆序输出列表,可借助切片实现:

print(list1[-1::-1])
#或者简记为:
print(list1[::-1])

此前曾遇到一个需求:如何在列表中生成A-Z或Z-A的序列?

list2 = []
for i in range(ord('A'),ord('A')+26):
  list2.append(chr(i))
print(list2)

list3 = [chr(ord('A')+x) for x in range(26)]
print(list3)

上述两种方法均可生成包含A到Z的列表。若熟悉其他编程语言,可能会尝试通过int('A')获取ASCII码,但在Python中直接对字符使用int()会报错,因为int()默认处理十进制整数。要实现字符与数字的转换,可使用ord()函数获取字符的Unicode码点,或使用chr()将码点还原为字符。此外,第二种方式利用了列表推导式,写法更为简洁。除上述方法外,还可使用map()函数对列表元素逐一处理,此处不再赘述。

以上就是Python中range()函数及列表切片方法的完整介绍,希望能为读者提供参考与帮助。

相关标签:

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

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 算法库。