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

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) —
推荐阅读:The Git Pre-Commit Hook to Avoid Pushing Only Unit Tests In Node How to Find the Most Common Word in a String with a Banned List? How to Construct Minimum Spanning Tree using Kruskal or Breadth Two Pointer and Sliding Window Algorithm to Find K-Length Substr How to Get the Maximum Level Sum of a Binary Tree using Breadth Compute the Minimum Costs to Connect the Sticks using Priority Q Single-Row Keyboard Algorithms to Estimate the Finger Moving Tim Bruteforce Algorithm to Find the Next Closet Time Reusing the Cu The Overlapping Rectangles using CSS and Javascript How to Count the Distinct Pairs using HashMap?
- 评论列表
-
- 添加评论