在 Python 中翻转列表 List 就是翻转列表中元素的排列顺序,即 列表 List 中的倒数第一个元素变为第一个,倒数第二个元素变为第二个,......,依次类推。

本文将介绍多种方法实现在 Python 中翻转列表 List

最简单:Python中用list.reverse()方法翻转列表

Python 中的 List 数据类型的每个 list 对象都有一个 reverse() 方法,调用 list.reverse() 方法直接在本 list 对象中翻转列表的顺序,不返回新 list 列表。

Python 中使用 reverse() 方法翻转列表示例:

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

Python中用reversed()函数翻转列表

reversed() 时 Python 的内建函数,它使用一个 List 作为参数,返回一个新的翻转的 iterator 对象,使用 List 的构造函数 list([iterable]) 传入该 iterator 对象,创建一个新的翻转的 list 对象。

Python 中用 reversed() 函数翻转列表示例:

>>> mylist = [1, 2, 3, 4, 5]
>>> reversed_iterator = reversed(mylist)
>>> new_list = list(reversed_iterator)
>>> print(new_list)
[5, 4, 3, 2, 1]

简化代码:

>>> mylist = [1, 2, 3, 4, 5]
>>> new_list = list(reversed(mylist))
>>> print(new_list)
[5, 4, 3, 2, 1]

Python中用slice切片翻转列表

在 Python 中切片有两种形式,其都是使用的 slice() 内置函数,两种形式为:

  • 隐式调用 slice() 函数:list[start: end: step]
  • 显式调用 slice() 函数:list[slice(start, stop, step)]

说明:当 step 为负值时,切片时从后往前访问元素。因此当 step 为 -1 时,切片时从后往前访问每一个元素。

1、推荐使用:Python 中使用 list[start: end: step] 切片列表实现翻转列表

>>> mylist = [1, 2, 3, 4, 5]
>>> new_list = mylist[::-1]
>>> print(new_list)
[5, 4, 3, 2, 1]

2、Python 中使用 list[slice(start, stop, step)] 切片列表实现翻转列表

>>> mylist = [1, 2, 3, 4, 5]
>>> new_slice = slice(-1,-(len(mylist)+1),-1)
>>> new_list = mylist[new_slice]
>>> print(new_list)
[5, 4, 3, 2, 1]

注:显式调用 slice() 函数必须提供三个参数。使用起来比较麻烦,不推荐使用

Python 翻转列表其他方法说明

实现 Python 翻转列表还有其他的方式,要么需要编写多行代码,要么需要使用第三方库,使用方法不如我们介绍的简单方便。

Python 翻转列表其他方法有:

  • Python 中使用列表推导式翻转列表
  • Python 中使用 list.insert() 方法翻转列表
  • Python 中使用双指针翻转列表
  • Python 中使用 Numpy 第三方库翻转列表

结语

本文介绍了使用 list.reverse() 方法,reversed()内置函数,List 切片三种最简单的方法实现在 Python 中翻转列表 List。