反转列表或数组是一项常见的编程任务。在许多情况下,你可能需要以相反的顺序呈现数据,例如在对列表进行排序时。
如何使用 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 中反转列表。选择最适合你并与你针对特定问题的逻辑保持一致的方法。