python中序列的逆序方式
作者:z語默 发布时间:2023-12-12 19:49:07
序列的逆序方式
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 函数则可以翻转多种序列,包括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
注意:
list、tuple、range 类型均可相互转换,但str类型不同;
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
一个字符串的逆序函数
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')
来源:https://blog.csdn.net/qq_24285815/article/details/106648824


猜你喜欢
- 数据类型:float — 浮点数可以精确到小数点后面15位int — 整型可以无限 * ool — 非零为true,零为falselist —
- 在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钩的。但效率又是我们所追求的,如果是像原来那样把所
- layer是一款近年来备受青睐的web弹层组件,官网地址是:http://layer.layui.com/可以从官网上下载最新版本.使用la
- vue-property-decorator这个组件完全依赖于vue-class-component.它具备以下几个属性:@Componen
- 1.先引入switchery.css 和 switchery.js2.绘制 checkbox按钮 : a.静态页面写法 未选中时
- 从某种意义上来说,页面设计(web设计)也就是用户界面设计。有许多技巧可以帮助我们制作出漂亮、实用的界面,这里收集的5个小技巧就会对你有所帮
- 我们可以用鼠标把Dreamweaver的层在页面内拖动,但要全屏拖动就困难了,下面是一种实现的方法:制作步骤:一、准备图片,取名/file/
- 在日常优化过程中,发现一个怪事情,同一个SQL出现两个完全不一样执行计划,left join 连驱动表都可以变成不一样。对于left joi
- 本文实例讲述了Python验证码识别的方法。分享给大家供大家参考。具体实现方法如下:#encoding=utf-8import Image,
- 一下demo演示2.0中的vue-router是如何获取到不同参数的,并在地址栏中匹配不同的信息 <!DOCTYPE html>
- swiper是我之前做前端页面会用到的一个插件,我自己认为是非常好用的。swiper提供了形式多种多样、适应各个终端的轮播图效果。本文是小编
- 本文研究的主要是Python处理文本换行符的相关内容,具体如下。源文件每行后面都有回车,所以用下面输出时,中间会多了一行try:  
- 1、在外部函数中定义内部函数,内部函数包含访问外部函数。即使外部函数的生命周期结束后,内部函数仍然可以访问外部函数变量。2、外部函数的返回值
- 使用原生SQL语句进行对数据库操作,可完成数据库表的建立和删除,及数据表内容的增删改查操作等。其可操作性很强,如可以直接使用“show da
- 由于需要,这会儿需要卸载掉本机上的oracle 11g数据库(我是在Windows 7系统上装的),在网上搜的了挺多方法的,有些说的不清楚。
- 一、写在前面从学 Python 的第一天起,我就知道了使用 pip 命令来安装包,从学习爬虫到学习 Web 开发,安装的库越来越多,从 re
- 使用Python读取解析xmind文件,一键统计测试用例数量。问题:做测试的朋友们经常会用到xmind这个工具来梳理测试点或写测试用例,但是
- 具体特征如下: 1、通过模板实现俄文正常。 2、通过后台数据库生成的静态俄文信息,后台显示正常, 前台乱码。 3、英文正常。 和该主题相关的
- 经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和
- 一.Array在Go语言中,数组是一个值类型(value type)所有的值类型变量在赋值和作为参数传递时都将产生一个复制动作如果作为函数的