Python中如何实现序列反转

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jerry_1126/article/details/85196637

在Python中如果是序列为列表的话,可以使用内置reversed或者reverse来反转一个序列,前者不会改变顺序,后者会改变顺序。

使用reverse实现列表反转

>>> L = ["A", "B", "C", "D"]
>>> L.reverse()                  # 使用reverse来反转一个列表
>>> L                            # 反转后,列表本身顺序发生改变
['D', 'C', 'B', 'A']
>>> for item in L:               # 对反转后的列表进行操作         
...     print(item)
D
C
B
A
>>> L.reverse()                  # 再次对列表进行操作,将其顺序变回来
>>> L
['A', 'B', 'C', 'D']

使用reversed实现列表反转

>>> L = ["A", "B", "C", "D"]
>>> for item in reversed(L):    # 使用reversed来反转一个列表并操作
...     print(item)
D
C
B
A
>>> L                           # 反转后创建一个新对象,不修改原来列表
['A', 'B', 'C', 'D']

使用range(len(seq)-1, -1, -1)实现序列反转

>>> s = "ABCD"
>>> for i in range(len(s)-1, -1, -1):
...     print(s[i])
D
C
B
A
>>> s
'ABCD'

备注: 使用上面的方法来反转序列,但速度较慢,效率较低。

使用seq[::-1]来反转一个序列

>>> S = "ABCD"
>>> for i in S[::-1]:
...     print(i)
D
C
B
A
>>> S
'ABCD'

>>> L = ["A", "B", "C", "D"]
>>> for i in L[::-1]:
...     print(i)
D
C
B
A
>>> L
['A', 'B', 'C', 'D']

猜你喜欢

转载自blog.csdn.net/Jerry_1126/article/details/85196637