Python中序列的逆序方式有几种,分别是什么
Admin 2022-08-23 群英技术资讯 461 次浏览
一般 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 循环中既可以实现顺序遍历,也可以进行逆序遍历。
在 python3 中,reversed 函数也能够逆转列表。
其实,在 python2.7 中就存在内置函数 reverse 可以用来翻转列表,不过在 python3 中已经删去该函数。
相比于 reverse 函数只能反转列表,reversed 函数则可以翻转多种序列,包括tuple、list、string、range等类型。
由于 reversed 函数实际上是一个类,因此其直接输出的是对应序列值反转后的迭代器,需要由对应类型的方法获取反转后的值。
比如:
# 列表反转 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
注意:
不过,reversed 函数只能对已有序列做完全反转,若只是想对序列其中一部分进行反转,需要先截取对应序列再反转,也可以用 range 函数遍历所需部分序列。
除了以上两种方法外,对于字符串序列,还可以用切片反转方法进行反转。
比如:
a = 'hello world' print("".join(reversed(a))) # 输出:dlrow olleh print(a[::-1]) # 输出:dlrow olleh print(a[::-2]) # 输出:drwolh
ef nixv(s): sum = " " #定义空字符串 for i in reversed(range(len(s))): #i逆序遍历 sum = sum + s[i] #使单独的字符串组合成整体 return sum #返回字符串 s = input("请输入一个字符串:") print(nixv(s)) # 方法二 s='wqrwqr123' print(s[::-1])# 切片 # 方法三 from functools import reduce s='123456' result =reduce(lamada x,y:y+x,s) print(result) # 方法四 def fan(str1): len1=len(str1) for i in range(len1): print(str1[len1-1-i],end='') fan('asdfg')
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
序列解包也可以用于列表、字典、enumerate对象、filter对象等等,但是对字典使用时,默认是对字典“键”进行操作,如果需要对“键:值”对进行操作,需要使用字典的items()方法说明,如果需要对字典“值”进行操作,则需要使用字典的values()方法明确指定。
我们使用Python的时候,需要导入模块、导入包等等。一些新手对于python导入方法不是很清楚,下面小编给大家分享一些python常见的导入方法,供大家参考学习。
Matlab 擅长于操作矩阵,而图像其实就是矩阵,这篇文章主要给大家介绍了关于matlab原始处理图像几何变换的相关资料,需要的朋友可以参考下
简介Python中的select模块专注于I O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也
在Python使用字符串的过程中,如果遇到很多的字符串,想要查找到想要的字符串有些困难。本文主要介绍Python字符串查找的几种方法:find方法、 index方法、rfind方法、rindex方法。具体请看如下内容:
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008