如何使用 Python 反转列表或数组

开发 后端
反转数组是你可能用于游戏或显示排序列表时的常用技术。Python 有几种方法可以做到这一点。

反转列表或数组是一项常见的编程任务。在许多情况下,你可能需要以相反的顺序呈现数据,例如在对列表进行排序时。

如何使用 Python 反转列表或数组?你将在本文中了解不同的方法。

使用 for 循环创建副本

虽然Python 的 for 循环更冗长,但在某些情况下它可能很方便。例如,在反向操作的某些点执行复杂逻辑时,它提供了更大的灵活性。

相关:如何在Python中使用For循环  https://www.linuxmi.com/python-for-loops.html

当使用缩进的 for循环时,常用的方法是以相反的顺序遍历原始列表。从最后一个元素开始,每次迭代都将前一个元素附加到一个新列表中。

以 1 到 9 之间的整数列表为例,以下是使用缩进的for循环反转数组的方法:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 创建一个空列表来保存反向数组:
reversed_list = []
# 从原始数组的长度中减去一,以从最后一个索引开始:
reducer = len(languages)-1
# 在for循环中反转列表:
for i in languages:
reversed_list.append(languages[reducer]) # 将结果追加到空列表
reducer -=1 # 使用reducer在每次迭代时将索引减少1
print(reversed_list)

输出:  

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

使用列表推导式反转列表或数组

列表推导产生更短的代码。并且不需要临时变量,因为列表理解作用于适当的列表。

要执行前面的操作,使用列表推导:

reducer = len(languages)
# 在列表推导式中,使用for循环在范围函数中递减索引
Reversed_list = [languages[reducer] for reducer in range(reducer -1,-1,-1)]
print(Reversed_list)

输出:  

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

使用切片运算符

列表切片运算符非常简单,尽管它有一些限制。例如,你可能无法像使用for循环时那样自定义输出。

以下是使用切片运算符反转列表的方法:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = languages[::-1]
print(rev_list)

输出:  

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

[ ::-1]语法是一个巧妙的快捷方式,它会产生一个反向列表。它实际上意味着“复制列表的每个元素,从末尾开始倒数”——即“反转它”!

使用数组的反转方法

这是另一种有效的方法:它修改原始数组。这可能是一个缺点,因为你不能为其他操作保留先前的列表。

以下是使用 reverse 方法反转数组的方法:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
print(languages)

输出:  

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

使用反转reversed函数

reversed 函数遍历列表、数组或任何其他序列并返回其反向副本。但是,你需要将反向输出显式声明为列表。

这是它的工作原理:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(reversed(languages)))

输出:  

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

使用数组获得创意

数组或列表是存储数据的常用方法。根据你的目标,你可能希望以相反的顺序将数据呈现给客户端。一种方法是在渲染之前反转数组或列表。如你所见,有几种方法可以在 Python 中反转列表。选择最适合你并与你针对特定问题的逻辑保持一致的方法。

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2010-03-15 12:36:26

Python列表

2021-02-14 00:47:02

JavaScript开发数组

2010-03-18 09:52:34

python列表学习整

2014-02-10 17:18:14

Windows 8.1

2012-05-04 08:21:00

Windows 7

2009-06-17 13:57:25

Scala元组数组

2009-05-28 09:48:21

微软Windows 7操作系统

2012-05-03 08:23:17

Win7跳转

2010-07-16 14:30:25

Perl数组

2010-01-18 17:23:55

函数

2010-01-18 17:23:55

函数

2024-02-22 15:31:46

Python排序

2010-03-15 15:11:50

Python列表

2009-11-16 17:41:41

PHP二维数组

2010-11-03 14:28:15

DB2行转列

2010-02-24 15:27:26

Python数组

2021-03-17 07:56:29

数组Map二叉树

2019-05-06 15:28:19

安装修复Windows 10

2015-10-14 10:54:25

UWP应用SDKWindows 10

2010-03-09 14:23:37

Python列表内涵
点赞
收藏

51CTO技术栈公众号