欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Python-4】如此方便的字符串操作

程序员文章站 2022-07-14 19:41:51
...

4.1 这样修改改字符串是非法的

所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串,但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。

>>> site = 'http://www.python.org'
>>> site[-3:]
'org'
>>> site[-3:] = 'com'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> 

4.2 常用字符串方法

4.2.1 center

将字符串按照一定的宽度居中。

>>> "Hello python".center(40)
'              Hello python              '
>>> "Hello python".center(40, "*")
'**************Hello python**************'
>>> "Hello python".center(40, "# ") 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: The fill character must be exactly one character long
>>> "Hello python".center(40, "#") 
'##############Hello python##############'
>>> 

4.2.2 find

方法 find 在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回 -1 。

>>> 'Wow, Python is the best programming language'.find(Python)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Python' is not defined
>>> 'Wow, Python is the best programming language'.find('Python')
5
>>> 'Wow, Python is the best programming language'.find('c++')      
-1

指定查找起始点和终点

>>> string = 'Wow, Python is the best programming language'
>>> string.find('best', 3, 25)
19
>>> string.find('best', 25)   
-1
>>> 

4.2.3 join

join 是一个非常重要的字符串方法,其作用与 split 相反,用于合并序列的元素。

>>> seq = [1, 2, 3, 4, 5]
>>> sep = '+'
>>> sep.join(seq) # 尝试合并一个数字列表
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: sequence item 0: expected string, int found
>>> seq = ['1', '2', '3', '4', '5']
>>> sep.join(seq) # 合并一个字符串列表
'1+2+3+4+5'
>>> dirs = '', 'usr', 'bin', 'env'
>>> '/'.join(dirs)
'/usr/bin/env'

4.2.4 spilt

其作用与 join 相反,用于将字符串拆分为序列。

>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']
>>> 'Using the default'.split()
['Using', 'the', 'default'

注意,如果没有指定分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)处进行拆分。

4.2.5 lower

方法 lower 返回字符串的小写版本。
一个与 lower 相关的方法是 title (参见附录B)。它将字符串转换为词首大写,即所有单
词的首字母都大写,其他字母都小写。然而,它确定单词边界的方式可能导致结果不合理。

 "that's all folks".title()
"That'S All, Folks"

另一种方法是使用模块 string 中的函数 capwords 。
>>> import string
>>> string.capwords("that's all, folks")
That's All, Folks"

4.2.6 replace

方法 replace 将指定子串都替换为另一个字符串,并返回替换后的结果。

 'This is a test'.replace('is', 'eez')
'Theez eez a test'

4.2.7 判断字符串是否满足特定的条件

很多字符串方法都以 is 打头,如 isspace 、 isdigit 和 isupper ,它们判断字符串是否具有特定
的性质(如包含的字符全为空白、数字或大写)。如果字符串具备特定的性质,这些方法就返回
True ,否则返回 False 。
一下是一些函数示例
isalnum 、 isalpha 、 isdecimal 、 isdigit 、 isidentifier 、 islower 、 isnumeric 、isprintable 、 isspace 、 istitle 、 isupper 。

此处仅仅列出了部分常用的方法,关于Python字符串的处理,还有很多函数。最详细的莫过于Python官方文档

以后在使用使用Python处理字符串方面新的内容,将会在此更新。