资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python中如何实现序列的逆序

这篇文章将为大家详细讲解有关python中如何实现序列的逆序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、做网站、魏县网络推广、重庆小程序开发、魏县网络营销、魏县企业策划、魏县品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供魏县建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

python中实现序列逆序的方法

1. range 函数

2. reversed 函数

3. 其他方法

1. range 函数

一般 for 循环中总会用到 range 函数来进行顺序遍历,同样的,range 也能表示序列的逆序。
在 range(start, end, step) 中,start 表示序列的起始索引(默认为0),end 表示终止索引,step 表示移动步长(默认为1)。由于 range 函数是“顾头不顾尾” 的形式,因此实际上其遍历的索引终止位置是 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]

这样,在 for 循环中既可以实现顺序遍历,也可以进行逆序遍历。

2. reversed 函数

在 python3 中,reversed 函数也能够逆转列表。
其实,在 python2.7 中就存在内置函数 reverse 可以用来翻转列表,不过在 python3 中已经删去该函数。
相比于 reverse 函数只能反转列表,reversed 函数则可以翻转多种序列,包括tupleliststringrange等类型。
由于 reversed 函数实际上是一个类,因此其直接输出的是对应序列值反转后的迭代器,需要由对应类型的方法获取反转后的值。
比如:

# 列表反转
a = [1, 2, 3, 4, 5]
print(reversed(a))  # 输出:
print(list(reversed(a)))  # 输出:[5, 4, 3, 2, 1]
# 元组反转
a = (1, 2, 3, 4, 5)
print(reversed(a))  # 输出:
print(tuple(reversed(a)))  # 输出:(5, 4, 3, 2, 1)
# 字符串反转
a = '12345'
print(reversed(a))  # 输出:
print(str(reversed(a)))  # 输出:
print("".join(reversed(a)))  # 输出:54321

注意

  1. listtuplerange 类型均可相互转换,但str类型不同;
  2. str类型反转序列输出采用"".join(reversed(string)))方法,即将反转序列按顺序添加进新的字符串序列中。

不过,reversed 函数只能对已有序列做完全反转,若只是想对序列其中一部分进行反转,需要先截取对应序列再反转,也可以用 range 函数遍历所需部分序列。

3. 其他方法

除了以上两种方法外,对于字符串序列,还可以用切片反转方法进行反转。
比如:

a = 'hello world'

print("".join(reversed(a)))  # 输出:dlrow olleh

print(a[::-1])  # 输出:dlrow olleh

print(a[::-2])  # 输出:drwolh

关于python中如何实现序列的逆序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章标题:python中如何实现序列的逆序
本文路径:http://www.cdkjz.cn/article/pcichd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220