python中实现序列逆序的方法
1. range 函数
一般
<br />
<span><br />
for<br />
</span><br />
循环中总会用到
<br />
<span><br />
range<br />
</span><br />
函数来进行顺序遍历,同样的,
<br />
<span><br />
range<br />
</span><br />
也能表示序列的逆序。
在
<br />
<span><br />
range(start, end, step)<br />
</span><br />
中,
start
表示序列的起始索引(默认为0),
end
表示终止索引,
step
表示移动步长(默认为1)。由于
<br />
<span><br />
range<br />
</span><br />
函数是“顾头不顾尾” 的形式,因此实际上其遍历的索引终止位置是
end
的前一个索引。
比如:
list(range(5)) = [0, 1, 2, 3, 4]
list(range(1, 5)) = [1, 2, 3, 4]
list(range(1, 5, 1)) = [1, 2, 3, 4]
list(range(1, 5, 2)) = [1, 3]
同理,逆序遍历只需将步长
step
设为负值即可。
比如:
list(range(5, 1, -1)) = [5, 4, 3, 2]
list(range(5, -2, 2)) = [5, 3, 1, -1]
这样,在
<br />
<span><br />
for<br />
</span><br />
在循环中,既可以实现顺序遍历,也可以实现逆序遍历。
2. reversed 函数
在 python3 中,
<br />
<span><br />
reversed<br />
</span><br />
函数也能够逆转列表。
其实,在 python2.7 中就存在内置函数
<br />
<span><br />
reverse<br />
</span><br />
可以用来翻转列表,不过在 python3 中已经删去该函数。
相比于
<br />
<span><br />
reverse<br />
</span><br />
函数只能反转列表,
<br />
<span><br />
reversed<br />
</span><br />
函数则可以翻转多种序列,包括
tuple
、
list
、
string
、
range
等类型。
由于
<br />
<span><br />
reversed<br />
</span><br />
函数实际上是一个类,因此其直接输出的是对应序列值反转后的迭代器,需要由对应类型的方法获取反转后的值。
比如:
# 列表反转
a = [1, 2, 3, 4, 5]
print(reversed(a)) # 输出:<list_reverseiterator object at 0x00000233F1C96588>
print(list(reversed(a))) # 输出:[5, 4, 3, 2, 1]
# 元组反转
a = (1, 2, 3, 4, 5)
print(reversed(a)) # 输出:<reversed object at 0x000001FE9B3A6588>
print(tuple(reversed(a))) # 输出:(5, 4, 3, 2, 1)
# 字符串反转
a = '12345'
print(reversed(a)) # 输出:<reversed object at 0x000001FAD17E2438>
print(str(reversed(a))) # 输出:<reversed object at 0x000001FAD17E2438>
print("".join(reversed(a))) # 输出:54321
注意
:
-
list
、
tuple
、
range
类型均可相互转换,但str类型不同;
-
str类型反转序列输出采用
<br /> <span><br /> "".join(reversed(string)))<br /> </span><br />
方法,即将倒序的序列按顺序添加到新的字符串序列中。
不过,
<br />
<span><br />
reversed<br />
</span><br />
该函数只能完全颠倒现有序列。如果只想反转一部分序列,需要截取对应的序列再反转。你也可以使用
<br />
<span><br />
range<br />
</span><br />
函数遍历所需部分序列。
3. 其他方法
除了以上两种方法外,对于字符串序列,还可以用切片反转方法进行反转。
比如:
a = 'hello world'
print("".join(reversed(a))) # 输出:dlrow olleh
print(a[::-1]) # 输出:dlrow olleh
print(a[::-2]) # 输出:drwolh
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中删除标签10/05
- ♥ 如何激活python虚拟环境08/21
- ♥ 如何在python中将Array和DataFrame相互转换08/29
- ♥ Python 面向对象编程解释11/06
- ♥ 如何使用python的打印09/22
- ♥ 如何使用pandas在python中添加行数据10/07
内容反馈