Three ways to Reverse a List/Array/Tuple in Python
- Time:2020-09-16 12:48:17
- Class:Weblog
- Read:18

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) —
Recommend:Microbit Programming: The Development of a Snake Eating Apple Ga
Compute the Angle of the Hour and Minute Hand on a Clock
How to Convert Binary Number in a Linked List to Integer?
The Permutation Iterator in Python
Compute the Indices of the Target Element in Array/List using Py
5 Cognitive Biases You Can Use to Boost E-Commerce Conversions
Important SEO Tips for E-commerce That You Cannot Disregard
5 Effective Ways to Improve Blog Conversion Rate
7 Reasons Blogging is Essential for Law Firms
Should Your Blog Extend Into Multimedia Forms of Content?
- Comment list
-
- Comment add