今天爱分享给大家带来Python 如何反序地迭代一个序列?【面试题详解】,希望能够帮助到大家。
Python 中常见的序列有字符串、列表及元组。对序列反序,可以利用内置函数 reversed() 或 range() 来实现,也可以用扩展切片 [::-1] 的形式实现。如果这个序列是列表,那么还可以使用列表自带的 reverse()方法。
(1) reversed() 是 Python 内置的函数,它的参数可以是字符串、列表或元组等序列。
(2) 利用 range() 方法生成序列的反序索引,然后从最后的元素遍历到开始的元素,就可以反序输出序列的元素。range(start, end[,step]) 方法的参数说明:
start:计数从 start 开始。默认是从 0开始。
end:计数到 end 结束,但不包括 end。
step:步长,默认为 1。
(3) seq[::-1] 扩展切片方法是利用了序列的切片操作,切片是序列的高级特性。seq[::-1] 表示反向获取 seq 中的所有元素,并且每次取一个。-1 表示从序列的最后一个元素反向遍历获取。
(4) 如果是列表(list) 序列,那么还可以直接用列表的 reverse() 方法。示例代码如下:
seq = "Hello World"
# reversed()内置函数方法
for s in reversed(seq):
print(s, end="")
print() # 换行
# range()函数方法
for i in range(len(seq) - 1, -1, -1):
s = seq[i]
print(s, end="")
print()
# [::-1]扩展切片方法
for s in seq[::-1]:
print(s, end="")
print()
# list 自带的 reverse()方法
seq = [1, 2, 3, 4, 5, 6]
seq.reverse()
for s in seq:
print(s, end="")
print()