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

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) —
推荐阅读:写人作文严厉的爸爸作文150字 流逝的岁月作文350字 第一次约会——邓迪译 数码宝贝观后感 搭积木作文150字 迟到的母亲节作文 吃粽子的由来作文 丢书作文150字 写人作文花开时节想起你作文800字 喜迎十八大,争做文明好少年
- 评论列表
-
- 添加评论