Python 反转序列的6种操作方法

您所在的位置:网站首页 反转恢复序列包括哪些内容和方法 Python 反转序列的6种操作方法

Python 反转序列的6种操作方法

2024-07-17 01:48:11| 来源: 网络整理| 查看: 265

1. 使用切片

通过切片的方式,可以快速地实现序列的反转。具体实现方法是将步长设置为-1,即可将字符串反转。

str1 = "Hello World" reverse_str = str1[::-1] print(reverse_str)

输出:dlroW olleH

另外,range()传入适当的入参,也能达到切片一样的效果,只不过range()返回的是一个区间列表,需要和for循环或者list函数搭配使用。举例list(range(9,-1,-1))得到的结果是[9,8,7,6,5,4,3,2,1,0]

2. 使用reversed函数

Python中的reversed函数可以实现对序列(包括列表、元组、字符串以及 range(n)  生成的区间列表)的反转。但是需要注意的是,该函数返回一个反转后的迭代器。与reversed()搭配使用的函数或方法有join函数(join函数能转换为字符串)、list函数或者list列表推导式、tuple函数。

list函数:

list(reversed(seq))

list 列表推导式:

[i for i in reversed(seq)]

tuple函数:

tuple(reversed(seq))

join函数:

str1 = "Hello World" reverse_str = ''.join(reversed(str1)) print(reverse_str)

join函数:可以把字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串,而且分隔的字符也可以是一个字符串。

3. 使用for循环

通过for循环逆序输出每个字符的索引,再加上对拼接字符  +  的灵活使用,即可实现字符串的反转。

str1 = "Hello World" reverse_str = '' for i in range(len(str1)-1, -1, -1): reverse_str += str1[i] print(reverse_str)

输出:dlroW olleH

4. 使用while循环

也可以通过while循环逆序添加字符,实现字符串的反转。相当于把for循环中range(start,end,sep)的start、end、sep分开写了而已

str1 = "Hello World" reverse_str = '' index = len(str1) - 1 while index >= 0: reverse_str += str1[index] index -= 1 print(reverse_str)

输出:dlroW olleH

5. 使用列表反转

将字符串转换为列表,对列表进行反转,再转换为字符串(注意str()函数只是在列表对象的首尾加一个引号(即“["H","e","l"]”),并不是把对象转换成真正的字符串,类似“Hel”这样的字符串)。同样需要使用join函数将列表转换为字符串。

str1 = "Hello World" reverse_list = list(str1) reverse_list.reverse() reverse_str = ''.join(reverse_list) print(reverse_str)

输出:dlroW olleH

6. 使用递归函数

递归函数可以实现对字符串的逆序操作。注意需要给递归函数传入字符串的长度参数来控制终止条件。函数的循环运行加拼接字符

def reverse_str(str1): if len(str1) == 0: return str1 else: return reverse_str(str1[1:]) + str1[0] str1 = "Hello" reverse_str = reverse_str(str1) print(reverse_str) 递归部分的运行流程是: 1、reverse(("ello") +"H" 2、reverse(“llo”)+"e" +"H" 3、reverse(“lo”)+“l” +"e"+"H" 4、reverse(“o”)+“l” +“l”+"e" +"H" 5、reverse(“”)+“o” +"l"+"l"+"e"+"H" 6、“”+“o”+"l"+"l"+"e"+"H" 即“olleH”

输出:olleH

补充join语法的使用:

1.1 string.join()

'sep'.join(seq)

sep: 代表分隔符, 可以是单个字符如: , . - ; 等,也可以是字符串如: ‘abc’。

seq: 代表要连接的元素序列,可以是字符串、元组、列表、字典等。

注:'sep’和seq都只能是string型(指的是列表、元组和字典中的元素必须是字符型),不能是int型和float型。

str1 = "Hello World" reverse_str = ''.join(reversed(str1)) print(reverse_str)

输出:dlroW olleH

1.2 os.path.join()

os.path.join(Path1,Path2,Path3,…) 代码解析:

把path1、path2、path3…等用\连接起来(用反斜杠连接),组成文件路径。

2 具体实例

2.1 要连接的元素序列是字符串

实例1—(分隔符是单个字符)

sep = " " #分隔符(空格) seq = '女神节日快乐' #要连接的字符串 str = sep.join(seq) #用分隔符连接字符串中的元素

得到结果:

‘女 神 节 日 快 乐’

实例2—(分隔符是多个字符):首尾两个字符的前后是没有分隔符的

sep = " (*^__^*) " #分隔符(空格) seq = '女神节日快乐' #要连接的字符串 str = sep.join(seq) #用分隔符连接字符串中的元素

得到结果:

'女 (*^__^*) 神 (*^__^*) 节 (*^__^*) 日 (*^__^*) 快 (*^__^*) 乐'

2.2 要连接的元素序列是列表

实例1—(分隔符是单个字符)

sep = "-" #分隔符(-) seq = ['I','2','U'] #要连接的列表 str = sep.join(seq) #用分隔符连接列表中的元素

得到结果:

'I-2-U'

实例2—(分隔符是多个字符)

sep = '-女神-' #分隔符(多个字符) seq = ['我','你','公认的',''] #要连接的列表 str = sep.join(seq)

得到结果:

'我-女神-你-女神-公认的-女神-'

2.3 要连接的元素序列是字典

实例1—(分隔符是单个字符)

sep = " " #分隔符(空格) seq = {'W':1,'i':2,'n':3,'k':4, 'n':5} #要连接的字典 str = sep.join(seq) #用分隔符连接字典的元素

得到结果:

'W i n k'

注:字典只对键进行连接,如果键中有重复项,则只保留第一个键。因为只连接键,所以只要求键是字符型的。

实例2—(分隔符是多个字符)

sep = " (^_-) " #分隔符(空格) seq = {'W':1,'i':2,'n':3,'k':4, 'n':5} #要连接的字典 str = sep.join(seq) #用分隔符连接字典的元素

得到结果:

'W (^_-) i (^_-) n (^_-) k'

2.4 要连接的元素是路径

实例1:

path1 = 'D:\\新建文件夹' path2 = '微信公众号' path3 = '16.快速入门python' Path_Final = os.path.join(path1, path2, path3) #这个方法仅仅是对几个字段串以路径的方式进行组合,至于这个路径是否真实存在,不是这个方法所关心的

得到结果:输出结果时会对\\进行转义后再输出,所以看到的是D:\而不是D:\\

'D:\新建文件夹\微信公众号\16.快速入门python'

#可以用如下语句把当前路径改成Path_Final

os.chdir(Path_Final) #本身无返回值,需要通过os.getcwd()将当前路径输出,输出的是转义后的路径,即不会出现\\,只会出现转义后的\。 #改变当前路径后,可以对新路径进行一系列操作 #要求Path_Final是真实存在的,否则会报错:系统找不到当前路径。

注:区别 + 号连接

path1+path2+path3

得到结果:

'D:新建文件夹微信公众号' #中间没有分隔符

实例2:看一个有意思的路径连接,思考一下为什么?

path1 = 'D:' path2 = '新建文件夹:' path3 = '微信公众号:' path4 = '17.python中的join函数' Path_Final = os.path.join(path1, path2, path3, path4)

得到结果:

'D:新建文件夹:\\微信公众号:\\17.python中的join函数'

os.path.join在path1后没有加连接符\,在path2后加了连接符,说明不是:导致的未加连接符,想一想为什么会不加连接符?

其实,如果拿捏不准什么时候能加上\,什么时候加不上\。就索性主动在需要加\的地方提前加上,注意\是转义字符,它必须成对出现,即\\是一起出现的,只出现1个\是有问题的,除非字符传前面加上r" "。另外注意\\是只转义1次不是按照这个\\格式无止境转义下去,即\\\\的转义结果是\\,而不是\。

path1 = 'D:\\\\' path2 = '新建文件夹\\\\' path3 = '微信公众号\\\\' path4 = '17.python中的join函数' Path_Final = os.path.join(path1, path2, path3, path4) print(Path_Final) #D:\\新建文件夹\\微信公众号\\17.python中的join函数

另外:如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃:

path1 = 'D:' path2 = '\新建文件夹' path3 = '\微信公众号' path4 = '\\17.python中的join函数' Path_Final = os.path.join(path1, path2, path3, path4) print(Path_Final) #D:\17.python中的join函数。path4是绝对路径。从解结果来看,path1也是绝对路径的意思,且优先级很高。

另外:如果最后一个组件为空,则生成的路径以一个'\'分隔符结尾:

3、join函数在实际中的应用

3.1 用python代码实现分解素因数,并用join函数打印出来

num = int(input()) #输入想要分解素因数的数 factor_list = [] #设定保存素因数的列表 def factor_fun(n): for i in range(2, n+1): #构建求素因数的循环 if n%i == 0: #如果n能整除i,则把i加入保存素因数的列表 factor_list.append(i) if n!=i: #如果i不等于n,且i是n的因数,把n除以i得到的新数,调用factor_fun函数 factor_fun(int(n/i)) return factor_list c = factor_fun(num) #调用函数 print(num, '=', end=' ',sep = ' ') print('*'.join('%s' %id for id in factor_list)) #把factor_list列表中数值型的数据转换成字符,用*连接

输入50得到结果:

50 50 = 2*5*5

3.2 用join函数根据当前路径组成新路径

import os #导入路径模块 os.getcwd() #获取当前路径 data_save = os.path.join(os.getcwd(), 'data_save') #获取当前路径并组合新的路径

得到结果:

'C:\\Users\\Administrator\\29_python中的join函数\\data_save'

3.3 找到0.整体公众号设计目录下最新文件的绝对路径和名称

import os import time file_dir=os.path.dirname(os.path.abspath('.'))+'\\0.整体公众号设计' #获取路径 lists=os.listdir(file_dir) #获取路径下的文件名 lists.sort(key=lambda fn:os.path.getatime(file_dir+"\\"+fn)) #按修改时间排序输出目录下所有文件名称 file=os.path.join(file_dir,lists[-1]) #输出列表中最后一个文件的绝对路径和名称

得到结果:

'D:\\新建文件夹\\微信公众号\\0.整体公众号设计\\求关注图片.pptx'

通过3.3的代码可以对某个文件夹下的文件做批量操作。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭