集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Python >

成都Python周末班:Python语言中字符串的拆分,连接及拼接

发布者: 成都达内     浏览次数:     发布时间:2018-12-27 10:01:08

既然字符串数据几乎无处不在,那么掌握所使用的工具如何进行字符串处理是非常重要的。 幸运的是,与其它语言甚至旧版本的Python语言相比,Python语言对字符串的操作非常简单。...

  成都Python周末班:Python语言中字符串的拆分,连接及拼接

  目录

  字符串拆分

  无参数字符串拆分

  指定分隔符

  使用 Maxsplit 对拆分进行限定

  字符串的连接及拼接

  使用运算符 + 进行字符串连接

  使用 .Join() 进行字符串连接

  合在一起来尝试

  生活中总有几样注定的事:死亡、税单以及需要处理字符串的程序员。 字符串可以有多种形式。 它们可以是非结构化的文本,用户名,产品描述,数据库列表名,或者其它任何我们使用语言描述的内容。

  既然字符串数据几乎无处不在,那么掌握所使用的工具如何进行字符串处理是非常重要的。 幸运的是,与其它语言甚至旧版本的Python语言相比,Python语言对字符串的操作非常简单。

  您将从本文中学习一些最基本的字符串操作:拆分,连接和拼接。 您不仅将学习如何使用这些工具,而且还将深入了解它们是如何工作。

  字符串拆分

  Python语言中,字符串是以str对象的形式表示的,是不可变的:这意味着不能直接更改内存中的对象。 记住这两个特点将会帮助您学习(并且记住)如何使用.split( )。

  您猜到字符串的这两个特征是如何与Python语言中的拆分功能相关的吗?如果您猜的到 因为字符串是一种特殊类型,所以.split( )是一个实例方法,那么您就是正确的!在其它一些语言(如Perl)中,是将原始字符串用作独立的.split( )函数的输入,而不是使用方法调用字符串本身。

  注意:如何调用字符串方法

  这里显示的 .split()这种写法就是对字符串实例进行调用的方法。 可称之为为静态方法,但这并不理想的形式,因为它比较“冗长”。为了完整起见,举个例子:

  Python语言中字符串的拆分,连接及拼接

  与下面首选的方法一比较,就会觉得上面的写法显得有些笨拙了:

  Python语言中字符串的拆分,连接及拼接

  有关Python语言中的实例、类和静态方法的更多内容,请查看我们的Python深入教程。

  字符串不可变会怎样? 这其实是提醒您字符串方法不支持就地操作,但它们会在内存中返回一个新对象。

  注意:就地操作

  就地操作是直接更改被调用的对象的操作。 常见的例子是对列表使用的.append( )方法:当您对列表使用.append( )函数时,原列表会被更改,原列表中填加了.append( )的输入。

  无参数字符串拆分

  在深入学习字符串拆分之前,先看一个简单的例子:

  Python 代码:

  成都Python周末班:Python语言中字符串的拆分,连接及拼接

  输出结果:

  成都Python培训哪家好

  这实际上是.split( )调用的一个特例,就是因为简单,所以我选了它做例子。如果不指定任何分隔符,.split( )会使用空格做为分隔符。

  这种不带参数直接调用.split( )的另一个特性是它会自动删除字符串前导、尾随以及连续的空格。 比较一下对下面的字符串调用split( )时,不使用分割符和使用" "(空格)作为分割符时的结果:

  Python 代码:

  成都Python培训哪家好

  结果:

  成都Python培训机构哪家好

  Python 代码:

  成都Python培训机构哪家好

  结果:

  成都Python周末班

  首先要注意的是,这个例子反映了Python语言中字符串的不可改变性:后面调用.split( )时是对原始字符串进行操作,而不是对第一次调用.split( )后生成的列表进行操作。

  第二个你应该注意到的是,无参数调用.split( )会提取句子中的单词并丢弃任何空格。

  指定分隔符

  .split(" ")的结果很直观。 当有前导或尾随分隔符时,您将得到一个空字符串,这可以在结果列表的第一个和最后一个元素中看到。

  当有多个连续的分隔符(例如“this”和“is”之间以及“is”和“my”之间的多个空格),第一个将用作分隔符,后续的分隔符将进入结果列表 作为空字符串。

  注意:调用.split()时的分隔符

  虽然上面的示例使用单个空格字符作为.split( )的分隔符,但并没有限制您使用的分隔符的类型或字符串长度。 唯一的要求是您的分隔符是一个字符串。 你可以使用从“...”到“separator”等任何东西。

  使用Maxsplit对拆分进行限定

  .split( )有一个名为maxsplit的可选参数。 默认情况下,.split( )将在调用时进行所有可能的拆分。 但是,如果对maxsplit赋值后,只会生成指定数量的拆分。 用我们之前的示例字符串,可以看到maxsplit的运行情况:

  Python 代码:

  成都Python周末班

  运行结果:

  成都Python培训班哪个好

  如上所示,如果将maxsplit设置为1,则第一个空白区域将作为分隔符,其余的部分将被忽略。 让我们做一些练习来测试一下到目前为止所学的一切。

  练习: “ 自己试试看: Maxsplit”

  如果对maxsplit赋一个负数,结果会是怎样?

  答案: “ 自己试试看: Maxsplit”

  .split( ) 将对所有的分隔符上进行字符串拆分,这和不设置Maxsplit参数时的缺省设置是一样的。

  练习: “章节理解检查”

  您最近拿到了一个逗号分隔(CSV)的文件,但是其格式编排的大有问题。 您的任务是将每行提取到一个列表中,该列表的每个元素代表该文件的列。 这个文件的格式有什么问题呢? 其中的“Address”字段中包含了多个逗号,但实际上需要在列表中表示为单个元素!

  假定读入到内存中的文件是下面这样的多段字符串:

  CSV文件:

  成都Python培训班哪个好

  希望的输出结果应该是这样的由列表组成的列表

  Python输出:

  成都python培训学费

  内层的列表是我们关心的CSV文件的列元素,每一个内层的列表是CSV文件的一行,外层的列表把所有的行组合起来。

  答案: “章节理解检查”

  这里给出我的答案。可以由几种方法得到结果。重要的是如何使用.split(),以及使用附加参数得到希望的结果:

  Python代码:

  成都python培训学费

  我们调用了两次.split( )。第一个调用可能理解起来有点难,但不要担心!我们一步一步看进去,您就会对这些表达式熟悉了。来看看第一个.split( )调用吧:unsplit.split(" n")[1:]。

  第一个元素是unsplit,是指向输入字符串的变量。之后就是.split( )调用:. split(" n")。这里,我们使用了一个特殊字符 - 换行符 做为分隔符。

  是做什么的呢?顾名思义,它指明在读取字符串的内容时,它之后的每个字符都应显示在下一行。像我们使用的input_string这样的多行字符串中,每行的末尾都有一个隐藏的 n。

  这一行最后的部分用法可能有点新:[1:]。这条语句执行到这个部分之前会输出一个新的列表, [1:]看起来像列表索引表示,其实它就是一种列表索引的表示方法!这一行最后额外的索引表示法会为我们输出一个列表切片。在本例中,我们取出索引1以及其后面的所有内容,丢弃索引0处的元素。

  总之,我们遍历一个字符串列表,其中每个元素代表多行输入字符串中除了第一行之外的每一行。

  对每一行字符串,我们再次使用.split( )进行字符拆分,但这次我们使用maxsplit仅拆分前两个逗号,保留地址部分的内容原封不动。 之后,我们把结果添加到已定义的列表数组中,并返回给调用者。

  字符串的连接及拼接

  另一个字符串的基本操作是与拆分字符串相反的操作:字符串连接。 如果您还没有关注到这个功能,请不要担心。 这只是把字符串“粘在一起”的一种奇特方式。

  使用 + 操作符进行连接

  有几种方法可以做到这一点,具体取决于您要实现的目标。 最简单和最常用的方法是使用加号(+)将多个字符串添加到一起。 只需在您想要连接的字符串之间放置一个+:

  Pyton代码:

  成都python快速入门培训

  结果:

  成都python快速入门培训

  和数学运算一样,您还可以将字符串相乘来进行字符串重复:

  Pyton代码:

  成都python在线学习课程

  结果:

  成都python在线学习课程

  请记住,字符串本身是不可改变的! 如果想把字符串连接或重复的结果存在变量中,则必须将结果赋给新的字符串变量进行保存。

  Pyton代码:

  成都比较好的python培训

  结果:

  成都比较好的python培训

  Pyton代码:

  成都python周末培训

  结果:

  成都python周末培训

  Pyton代码:

  成都python培训怎么样

  结果:

  成都python培训怎么样

  如果不是不可改变的字符串,则full_sentence会输出"Hello,world,world"。

  另一个需要注意的是Python语言不会进行隐式字符串转换。 如果您尝试将字符串与非字符串类型连接,Python将引发TypeError:

  Pyton代码:

  Python语言中字符串的拆分,连接及拼接

  结果:

  成都Python周末班:Python语言中字符串的拆分,连接及拼接

  出错的原因是在Python语言中,您只能将字符串与其他字符串连接起来,这是中您需要注意到的Python语言的特点。如果您使用过诸如JavaScript之类的语言就会知道,这些语言中会尝试进行隐式类型转换。

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市人民南路一段86号“城市之心”大厦26楼

联系电话:15023458194

公交路线:成都市人民南路(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56