声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
我们知道字符串是不可变的,所以不能在原处直接对其进行修改。为了在已存在的字符串中创建新的文本值,我们可以通过分片和合并这样的操作来建立新的字符串。举个例子,为了替换一个字符串中的两个字符,你可以用如下代码来完成:
但是,如果仅为了替换一个子字符串的话,那么可以使用字符串的replace方法来实现:
replace方法的参数是原始子字符串(任意长度)和替换原始子字符串的字符串(任意长度),之后进行全局搜索并替换:
也通过使用字符串方法find搜索子字符,之后再使用分片来替换字符串,但是过程很繁琐:
replace方法还可以指定替换多少个。如果不指定就是替换所有找到的子字符串:
注意replace每次会返回一个新的字符串对象。由于字符串是不可变的,因此每一种方法并不是真正在原处修改了字符串,尽管“replace”就是“替换”的意思!
合并操作和replace方法每次运行会产生新的字符串对象,实际上利用它们去修改字符串是一个潜在的缺陷。如果你不得不对一个超长字符串进行许多的修改,为了优化脚本的性能,可能需要将字符串转换为一个支持原处修改的对象。
内置的list函数以任意序列中的元素创立一个新的列表——在这个例子中,它将字符串的字符“打散”后构建出一个列表。一旦字符串以这样的形式出现,你无需在每次修改后进行复制就可以对其进行多次修改:
修改之后,如果你需要将其变回一个字符串(例如,写入一个文件时),可以用字符串方法join将列表“合成”一个字符串:
可能第一眼看上去连接方法有些奇怪。因为它是用于字符串的方法(并非用于列表),所以通过设定的分隔符来调用。join将列表字符串连在一起,并用分隔符隔开。这个例子中使用一个空的字符串分隔符将列表转换为字符串。一般地,对任何字符串分隔符和可迭代字符串都会是这样的结果:
实际上,像这样一次性连接子字符串比单独地合并每一个要快很多。
我的微信公众号是“人工智能知识分享”