Three ways to Reverse a List/Array/Tuple in Python

  • 时间:2020-09-16 12:48:17
  • 分类:网络文摘
  • 阅读:152 次
python Three ways to Reverse a List/Array/Tuple in Python python

python

Reversing a List/Array is very commonly needed and there are three ways to reverse a list or array in Python.

Using the .reverse() method to reverse a list or array

Note: this method does not work for tuples in Python.

1
2
3
4
5
6
a
(1, 2, 3, 4, 5)
>>> a.reverse()
Traceback (most recent call last):
  File "stdin", line 1, in module
AttributeError: 'tuple' object has no attribute 'reverse'
a
(1, 2, 3, 4, 5)
>>> a.reverse()
Traceback (most recent call last):
  File "stdin", line 1, in module
AttributeError: 'tuple' object has no attribute 'reverse'

The .reverse() will modify the given array/list. See the below:

1
2
3
a = [1, 2, 3, 4, 5]
a.reverse() # returns None
print(a) # [5, 4, 3, 2, 1]
a = [1, 2, 3, 4, 5]
a.reverse() # returns None
print(a) # [5, 4, 3, 2, 1]

As we can see in the above Python code, the .reverse() does not create a copy, rather, it reverses the array/list in-place. The .reverse() method returns None.

Using the slicing to reverse an array, list or tuples in Python

We can use the [::-1] to returns a copy, without modifying the input. It works for list/array and tuples as well.

1
2
3
4
5
6
7
8
9
10
11
>>> a = (1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
>>> a[::-1]
(5, 4, 3, 2, 1)
>>> a
(1, 2, 3, 4, 5)
>>> a=[1,2,3,4,5]
>>> a[::-1]
[5, 4, 3, 2, 1]
>>> a
[1, 2, 3, 4, 5]
>>> a = (1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
>>> a[::-1]
(5, 4, 3, 2, 1)
>>> a
(1, 2, 3, 4, 5)
>>> a=[1,2,3,4,5]
>>> a[::-1]
[5, 4, 3, 2, 1]
>>> a
[1, 2, 3, 4, 5]

This is quite cool and the most Pythonic way to reverse a list or tuple.

Python reversed() method to return a reversed iterator

We can use the reversed() function (inbuilt Python) that allows us to return an iterator. As for the list/array:

1
2
3
4
a = [1, 2, 3, 4, 5]
reversed(a) # returns an iterator
list(reversed(a)) converts to list [5, 4, 3, 2, 1]
tuple(reversed(a)) converts to tuple (5, 4, 3, 2, 1)
a = [1, 2, 3, 4, 5]
reversed(a) # returns an iterator
list(reversed(a)) converts to list [5, 4, 3, 2, 1]
tuple(reversed(a)) converts to tuple (5, 4, 3, 2, 1)

It works for tuples as well:

1
2
3
4
a = (1, 2, 3, 4, 5)
reversed(a) # returns an iterator
list(reversed(a)) converts to list [5, 4, 3, 2, 1]
tuple(reversed(a)) converts to tuple (5, 4, 3, 2, 1)
a = (1, 2, 3, 4, 5)
reversed(a) # returns an iterator
list(reversed(a)) converts to list [5, 4, 3, 2, 1]
tuple(reversed(a)) converts to tuple (5, 4, 3, 2, 1)

Returning a reversed() iterator does not modify the original array, list or tuple as well. When you call list() or tuple(), you can convert the reversed iterator explicitly to a list or tuple.

Oh, it seems years ago I have written on this topics already: Reverse List/Tuple/String in Python

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
微博营销如何赚钱?我给大家提供一些思路  百度AI生态的建立 给创业公司带来了什么好处?  创业项目营销效果不佳 只因没做好这几件事  AI把英语系新生吓退学?别急,我们从来都是那只懒蚂蚁  创业初期该做什么?首先你需要避开的这5大坑!  2018世界人工智能大会开幕,它给创业者带来了哪些思路?  创业寒冬下 初创公司如何才可以打破C轮死魔咒?  为什么企业找不到合适的互联网营销负责人?  知识焦虑遇冷后 知识付费的下一个风口究竟在哪里?  2018秋北京松松兄弟线下聚会干货分享 
评论列表
添加评论