展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

1.字符串的字符转换1.1.字符转换的概念在前面说的的字符串替换,是将字符串中的一个子串替换成了新的子串,如果我们想对字符串中的某些字符进行转换,也就是对字符串中的单个字符进行替换,可以调用方法maketrans和translate来实现。首先调用maketrans方法创建一个转换表,在转换表中声明要将那些字符转换成什么字符,然后将创建的转换表作为参数传给translate方法,实现字符的转换。maketrans方法创建转换表的语法:str.maketrans('转换的字符','转

本文目录

      1.字符串的字符转换

      1.1.字符转换的概念

      在前面说的的字符串替换,是将字符串中的一个子串替换成了新的子串,如果我们想对字符串中的某些字符进行转换,也就是对字符串中的单个字符进行替换,可以调用方法maketrans和translate来实现。

      首先调用maketrans方法创建一个转换表,在转换表中声明要将那些字符转换成什么字符,然后将创建的转换表作为参数传给translate方法,实现字符的转换。

      maketrans方法创建转换表的语法:

      str.maketrans('转换的字符', '转换后的字符','删除的字符')

      maketrans方法可以传入三个参数:

      • 第一个参数用于指定被转换的字符,如果指定了多个字符,那么转换后的字符也需要指定多个,且数量都要相同,被转换的第一个字符会转换成第二个参数中的第一个字符,案例中会说明。

      • 第二个参数用于指定转换后的字符。

      • 第三个参数用于指定删除那些字符。

      定义好一个转换表之后,使用print可以打印这个转换表的内容,此时返回的是一个字典,字典中的每个key:value都是字符对应的ordinal value值。

      translate方法将转换表当做参数传入,再被定义的字符串调用,最终实现字符的转换。

      1.2.字符转换的应用案例

      1)转换表的创建

      定义转换表时,如果指定了多个被转换的字符,那么转换后的字符数量要与被转换的字符数量相同,此时第一个参数和第二个参数会交叉转换,代码如下。

      contable = str.maketrans('agx', '789')
      print(contable)
      
      '''
      代码解释:
          str.maketrans('agx', '789')定义了一个转换表,其中字符a转换成字符7,字符g转换成字符8,字符x转换成字符9
          当使用print函数打印定义的转换表时,返回的是一个字典,key是被转换的字符,value是转换后的字符,并且返回的是字符的ordinal value值
          返回结果:{97: 55, 103: 56, 120: 57}
              {97是字符a: 55是字符7, 103是字符g: 56是字符8, 120是字符x: 57是字符9}
      '''

      可以使用print函数打印转换表,返回结果是一个字典,在字典中的值是对应字符的ordinal value值,在字典中可以明确的看到什么字符会被转换成什么字符,如下图,97是字符a,55是字符7,97对应的字符会转换成55对应的字符。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      除了直接以字符串的形式声明被转换字符和转换后字符的原始值外,还可以使用字典的方法声明转换与被转换的字符,因为转换表返回的结果就是一个字典,但是用的最普遍的方法还是直接在转换表中声明被转换的字符。

      #使用字典的形式,在字典中声明转换的字符、被转换字符的原始值
      contable = str.maketrans({'a': '7', 'g': '8', 'x': '9'})
      print(contable)
      '''
      	此时使用print打印转换表时,就会发现转换后的字符会以原始值的形式记录在字典中,被转换的字符还是以ordinal value值表示
      '''
      #输出结果:{97: '7', 103: '8', 120: '9'}
      
      #还是使用字典的行驶,在字典中声明被转换字符、转换字符的ordinal value值
      contable = str.maketrans({97: 55, 103: 56, 120: 57})
      print(contable)
      '''
      	这种方法需要实现使用ord函数获取被转换字符、转换字符的ordinal value值,然后在字典中直接声明字符的ordinal value值
      '''
      #输出结果:{97: 55, 103: 56, 120: 57}

      2)字符的转换

      #首先定义一个转换表,这个转换表可以被任意字符串调用使用
      contable = str.maketrans('agx', '789')
      
      #定义一个字符串
      mystr = 'jiangxluplader'
      
      #使用translate方法将转换表以参数的形式传入,然后由字符串调用这个方法实现字符的转换
      print(mystr.translate(contable))
      
      #输出结果:ji7n89lupl7der

      发现字符串中所有的a字符都被转换成了7,所有的g字符都被转换成了8,所有的x字符都被转换成了9。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      3)maketrans方法定义转换表时 还可以指定要删除的字符,例如删除字符u、p

      contable = str.maketrans('agx', '789', 'up')
      mystr = 'jiangxluplader'
      print(mystr.translate(contable))
      
      '''
      	maketrans方法创建转换表时,第三个参数是指定删除的字符
      '''
      
      #输出结果:ji7n89ll7der

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      4)maketrans方法定义转换表中,还可以不对字符进行转换,只对某些字符进行删除,例如只删除字符u、p

      contable = str.maketrans('', '', 'up')
      mystr = 'jiangxluplader'
      print(mystr.translate(contable))
      
      #输出结果:jiangxllader

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      当指定第三个参数时,会将指定的字符删除,其实就是将指定的字符设置成了None对象。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      2.字符串的劈分

      2.1.字符串劈分的概念

      所谓的字符串劈分指的是,根据指定的分隔符,将字符串一分为N个,例如字符串“aaa bbb”,默认的分隔符是空格,根据分隔符可以将这个字符串分为“aaa”,“bbb”,这就是字符串的劈分。字符串的劈分共有两种方法:

      1)调用方法split或者rsplit劈分字符串

      • split方法是从字符串的左侧开始劈分字符串,从前往后开始劈分。

      • rsplit方法是从字符串的右侧开始劈分字符串,从后往前开始劈分。

      split和rsplit方法会根据分隔符对字符串中所有出现分隔符的地方进行劈分。

      默认的分隔符是空格字符串,这两个方法如果不指定最大的劈分次数,输出的内容没有任何区别,并且这两个方法的返回值都是一个列表。

      当字符串中没有指定的分隔符时,这两个方法都会返回字符串本身,但是也会将字符串本身放在列表中。

      2)调用方法partition或者rpartition劈分字符串

      partition和rpartition这两个方法在调用的时候必须指定分隔符,然后对字符串进行劈分,这两个方法对字符串劈分后会返回一个元组。

      • partition方法是左劈分,从左往右找到分隔符第一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      • rpartition方法是右劈分,从右往左找到分隔符第一次出现的位置,或者从左往右找到分隔符最后一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      partition方法和rpartition只会将字符串中第一次出现分隔符的位置,进行劈分,一分为三,这就是与split方法的最大区别

      partition方法和rpartition两个方法只是开始劈分的位置处不同,然后将字符串劈分为三个元素:

      • 分隔符前面的部分

      • 分隔符

      • 分隔符后面的部分

      如果字符串中不存在指定的分隔符,两个方法都会返回字符串本身,partition方法劈分的三个元素顺序依次为:字符串本身、空字符串、空字符串,rpartition方法劈分的三个元素依次为:空字符串、空字符串、字符串本身。

      2.2.调用方法split或者rsplit劈分字符串

      1)基本的劈分案例

      #原始字符串
      mystr = "DevOps Jenkins Kubernetes"
      
      #左劈分
      print(mystr.split())
      
      #右劈分
      print(mystr.rsplit())
      
      '''
      	左劈分是从DevOps第一个空格字符串处开始劈分,右劈分是从Kubernetes最后一个空格字符串处开始劈分
      	默认的劈分字符串是空格字符串,只要遇到空格字符串,就将空格字符串左侧的字符串劈分出来。
      '''

      可以看到split和rsplit两个方法对字符串劈分后,并没有明显的区别。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      2)通过参数sep指定分隔符劈分字符串

      在split和rsplit方法中都可以使用sep参数指定分隔符,从而根据指定的分隔符去劈分字符串。

      mystr = "DevOps|Jenkins|Kubernetes"
      print(mystr.split(sep='|'))
      print(mystr.rsplit(sep='|'))
      
      '''
      	split(sep='|')、rsplit(sep='|')指定分隔符为“|”
      '''

      可以看到split和rsplit两个方法对字符串劈分后,并没有明显的区别。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      当指定的分隔符字符串不存在时,则会返回字符串本身,但是也会将字符串本身放在列表中。

      mystr = "DevOps Jenkins Kubernetes"
      print(mystr.split(sep='|'))
      print(mystr.rsplit(sep='|'))

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      3)通过参数maxsplit指定劈分字符串的最大劈分次数

      在split和rsplit方法中都可以使用maxsplit参数指定劈分字符串的最大劈分次数,什么意思呢?原本一个字符串可以被劈分6次,但是我们只需要劈分2次就行,就可以使用maxsplit参数指定指定劈分字符串的最大劈分次数。

      当指定了最大的劈分次数时,当超过最大的劈分次数后,剩余的子串会单独作为一部分输出,此时split和rsplit两个劈分方法就会有明显的区别。

      #定义原始字符串
      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      
      '''
      	使用split方法是从左往右开始劈分,从第一个子串位置处开始劈分,分隔符为"|",劈分次数为2,本身这个字符串可以被劈分5次,我们只劈分2次,那么DevOps、Jenkins会被劈分出来作为列表的单独元素,而剩余的子串Kubernetes|Python|Gitlab会被作为一部分放在列表的一个元素内
      '''
      print(mystr.split(sep='|', maxsplit=2))
      #输出结果:['DevOps', 'Jenkins', 'Kubernetes|Python|Gitlab']
      
      '''
      	使用rsplit方法是从右往左开始劈分,从最后一个子串处开始劈分,分隔符为"|",劈分次数为2,本身这个字符串可以被劈分5次,我们只劈分2次,那么Gitlab、Python这两个字符串会被劈分出来作为列表的单独元素,而剩余的字符DevOps|Jenkins|Kubernetes会被作为一部分,放在列表的一个元素内
      '''
      print(mystr.rsplit(sep='|', maxsplit=2))
      #输出结果:['DevOps|Jenkins|Kubernetes', 'Python', 'Gitlab']

      当在劈分方法内指定了最大的劈分次数的参数时,split左劈分和rsplit右劈分就会有明显的区别,split方法是从前往后根据分隔符进行劈分,rsplit方法是从后往前根据分隔符进行劈分。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      2.3.调用方法partition或者rpartition劈分字符串

      partition方法是左劈分,从左往右找到分隔符第一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      rpartition方法是右劈分,从右往左找到分隔符第一次出现的位置,或者从左往右找到分隔符最后一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      这两个方法,只会根据一个分隔符进行劈分字符串,且始终劈分成三个元素,partition方法的分隔符取决于在字符串中第一次出现的分隔符,rpartition方法的分隔符取决于字符串中最后一次出现的分隔符。

      1)调用方法partition劈分字符串

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.partition('|'))
      
      '''
      	partition从左往右找到第一次出现分隔字符串的位置,从这里开始劈分字符串,分隔符左侧的部分(DevOps)为第一个元素,分隔符(|)为第二个元素,分隔符右侧的部分(Jenkins|Kubernetes|Python|Gitlab)为第三个元素。
      '''
      
      #输出结果:('DevOps', '|', 'Jenkins|Kubernetes|Python|Gitlab')

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      2)调用方法rpartition劈分字符串

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.rpartition('|'))
      
      '''
      	rpartition从左往右找到最后一次出现分隔字符串的位置,分隔符左侧的部分(DevOps)为第一个元素,分隔符(|)为第二个元素,分隔符右侧的部分(Jenkins|Kubernetes|Python|Gitlab)为第三个元素。
      '''
      
      #输出结果:('DevOps|Jenkins|Kubernetes|Python', '|', 'Gitlab')

      确实和理论说明的一样,从左往右找到最后一次分隔符出现的位置,分隔符左侧的部分为元组中的第一个元素,分隔符为第二个元素,分隔符右侧的部分为元组中的第三个元素。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      3)当字符串中只有一个分隔符字符串且分隔符后没有任何字符时

      当字符串中只有一个分隔符字符串时,且分隔符后面没有任何字符串,此时无论是partition方法还是rpartition方法,劈分的字符串第三个元素一定为空。

      mystr = "DevOps|"
      print(mystr.partition('|'))
      print(mystr.rpartition('|'))

      第三个元素取的都是分隔符后面的部分,分隔符后面的部分什么也没有,因此就会输出空字符串。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      4)当字符串中不存在指定的分隔符字符串(partition方法)

      如果字符串中不存在指定的分隔符,partition方法劈分的三个元素顺序依次为:字符串本身、空字符串、空字符串。

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.partition('*'))
      
      #输出结果:('DevOps|Jenkins|Kubernetes|Python|Gitlab', '', '')

      第一个元素是字符串的本身,第二个元素是空字符串,第三个元素也是空字符串。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      4)当字符串中不存在指定的分隔符字符串(rpartition方法)

      如果字符串中不存在指定的分隔符,rpartition方法劈分的三个元素顺序依次为:空字符串、空字符串、字符串本身。

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.rpartition('*'))

      第一个元素是空字符串,第二个元素是空字符串,第三个元素是字符串的本身。

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      3.字符串的合并

      可以调用方法join将多个字符串合并成一个字符串。语法格式如下:

      '字符串的间隔符'.join(列表|数组)
      
      字符串的间隔符可以指定,也可以不指定,指定后,每个元素字符串在合并时都会在后面添加一个分隔符。

      1)使用join方法将列表中多个字符串进行合并

      使用join方法可以将列表中的多个元素,元素也都是字符串,将这些字符串进行合并。

      print(''.join(["Python", "Go", "K8S"]))
      
      #输出结果:PythonGoK8S

      使用join方法将列表中的每个元素合并时添加一个分隔符“|”

      print('|'.join(["Python", "Go", "K8S"]))
      
      #输出结果:Python|Go|K8S

      2)使用join方法将元组中的多个字符串进行合并

      join方法也可以将元组中的元素合并。

      print('|'.join(("Python", "Go", "K8S")))
      
      #输出结果:Python|Go|K8S

      3)可以把字符串看成是字符的列表,然后使用join方法将这些字符合并成字符串

      可以把字符串看成是字符的列表,然后使用join将这些字符加上分隔符合并成新的字符串。

      print('|'.join("Python"))
      
      #输出结果:P|y|t|h|o|n

      Python字符串的字符转换、字符串劈分、字符串合并问题怎么解决

      本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
      作者最新文章
      编程开发 Python
      相关文章 更多
      精品专题 更多
      装机必备

      正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

      Windows

      正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

      PDF教程

      正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

      macOS软件

      正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

      IOS软件

      正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

      AI

      正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

      Mac软件 更多
      讯飞智作 网页版
      讯飞智作 网页版

      讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

      火山引擎 网页版
      火山引擎 网页版

      火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

      Aperty macOS版
      Aperty macOS版

      Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

      立刻MV 网页版
      立刻MV 网页版

      立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

      蛙蛙写作 网页版
      蛙蛙写作 网页版

      蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

      超级简历WonderCV 网页版
      超级简历WonderCV 网页版

      超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

      音述AI 网页版
      音述AI 网页版

      音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

      AionClaw macOS版
      AionClaw macOS版

      AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

      Loomy macOS版
      Loomy macOS版

      Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

      AirBuddy 3 macOS版
      AirBuddy 3 macOS版

      AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

      AirServer macOS版
      AirServer macOS版

      AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

      AnyDesk macOS版
      AnyDesk macOS版

      AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

      WINDOWS 更多
      讯飞智作 网页版
      讯飞智作 网页版

      讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

      火山引擎 网页版
      火山引擎 网页版

      火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

      PixTV 网页版
      PixTV 网页版

      PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

      讯飞绘文 网页版
      讯飞绘文 网页版

      讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

      Maya(Autodesk Maya) Windows版
      Maya(Autodesk Maya) Windows版

      Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

      Aperty Windows版
      Aperty Windows版

      Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

      立刻MV 网页版
      立刻MV 网页版

      立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

      蛙蛙写作 网页版
      蛙蛙写作 网页版

      蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

      超级简历WonderCV 网页版
      超级简历WonderCV 网页版

      超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

      音述AI 网页版
      音述AI 网页版

      音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

      AionClaw Windows版
      AionClaw Windows版

      AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

      Loomy Windows版
      Loomy Windows版

      Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。