Python列表逆序排列的3种方式小结

Ivy
Ivy
发布时间:2026-10-15| 4人浏览过
原创

本文总结了Python中实现列表逆序排列的三种常用方法:list.reverse()、切片操作以及reversed()函数。通过对比它们在内存占用、是否修改原列表及执行效率上的差异,帮助开发者根据具体需求(如是否需要保留原数据、最终结果类型等)选择最合适的方案。

Python列表逆序排列

第一种方法 list.reverse()

该方法会直接将列表中的元素顺序颠倒,无需创建新的副本存储结果。

优点:1. 节省内存空间。

缺点:1. 直接修改了源数据,若后续仍需使用原始列表顺序则需再次倒序,造成多余操作。

mylist = [1, 2, 3, 4, 5]
print(mylist)
mylist.reverse()
print(mylist)

第二种方法 使用切片

mylis[start: end:step]

上述语法表示从 mylist 的第 start 个元素(索引从 0 开始)取到第 end 个元素(不包含 end),步长为 step(默认为 1)。

x = mylist[1:3]
print(x)
y = mylist[1:4:2]
print(y)

1. start、end 和 step 均为可选参数。

2. 当使用 mylist[:] 时,将返回 mylist 的一个副本。

3. 若省略 start 和 end,仅指定 step,则从索引 0 开始以 step 为单位进行遍历。

q = mylist[::2]
print(q)

1. 当 start、end 或 step 为负数时,表示从反向方向遍历列表。

2. 此时索引并非从零开始,而是从 -1 开始计数。

w = mylist[-1:-3:1]
print(w)
e = mylist[-3:-1:1]
print(e)
r = mylist[-1:-3:-1]
print(r)
t = mylist[-1:-3:-2]
print(t)

因此,使用 mylist[::-1] 即可实现列表倒序。

1. 此方式会创建副本保存列表所有元素,占用更多存储空间。

2. 虽然可读性略逊于第一种方法,但不会改变原列表的内容。

第三种 使用reversed()方法

reversed 方法将逆序结果封装为迭代器,这种方式既不修改原列表,也不创建完整副本,仅增加迭代器对象的空间开销,相对高效。

若需访问所有元素,可通过循环遍历。

for i in reversed(mylist):
    print(i)
print(mylist)

若需转换为列表类型。

r = list(reversed(mylist))
print(r)

怎么 选择使用

1. 显然,第一种是首选。毕竟高效、易读。如果不要保留原列表的数据,使用这种方式显然更有优势,否则选择后两种

2. 如果最后需要得到列表类型的结果,那么选第二种方式比较合理。否则,第三种方式更高效。

python列表技巧(倒序)

a = [0,1,2,3,4,5,6,7,8,9]

b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象

b = a[1:3] 那么,b的内容是 [1,2]

  • 当i缺省时,默认为0,即 a[:3]相当于 a[0:3]
  • 当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]
  • 当i,j都缺省时,a[:]就相当于完整复制一份a了

b = a[i:j:s]这种格式呢,i,j与上面的一样,但s表示步进,缺省为1.

所以a[i:j:1]相当于a[i:j]

当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1

所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。也就相当于是将列表倒叙了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

相关标签:

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

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