一、字符串总结四
1.删除字符串中(左右)空格或者与之匹配的字符串
“字符串”.lstrip(char=None) 删除左空格
“字符串”.rstrip(char=None) 删除右空格
“字符串”.strip(char=None) 删除空格
>>> " 左侧不要留白".lstrip()
'左侧不要留白'
>>> "右侧不要留白 ".rstrip()
'右侧不要留白'
>>> " 左右不要留白 ".strip()
'左右不要留白'
#注意:这里我们传入的虽然是一串字符,但它是按照单个字符为单位进行剔除的。
#比如 lstrip("wcom.") 表示在目标字符串的左侧依次寻找 'w'、'c'、'o'、'm'、'.' 这五个字符,匹配任何其中的任何一个都要把它踢掉。
>>> "www.ilovefishc.com".lstrip("wcom.") #从左侧开始删除,去掉"www."
'ilovefishc.com'
>>> "www.ilovefishc.com".rstrip("wcom.") #删除右侧的".com"
'www.ilovefish'
>>> "www.ilovefishc.com".strip("wcom.") #同时去掉左侧和右侧匹配的字符串
'ilovefish'
2.删除指定的前缀或者后缀 (python版本3.9以上才可以)
“字符串”.removeprefix() 删除前缀
“字符串”.removesuffix() 删除后缀
python3.9以下版本
>>> "www.ilovefishc.com".removeprefix("www.")
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
"www.ilovefishc.com".removeprefix("www.")
AttributeError: 'str' object has no attribute 'removeprefix'
>>> "www.ilovefishc.com".removesuffix(".com")
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
"www.ilovefishc.com".removesuffix(".com")
AttributeError: 'str' object has no attribute 'removesuffix'
>>>
python3.9以上版本
3.字符串切割
3.1字符串以参数指定的分隔符为依据进行切割,将切割后的结果返回一个三元组(三个元素的元组)
“字符串”.partition() #从左往右找分隔符
“字符串”.rpartition() #从右往左找分隔符
>>> "www.ilovefishc.com".partition(".") #以小数点进行分割
('www', '.', 'ilovefishc.com')
>>> "ilovefishc.com/python".rpartition("/")
('ilovefishc.com', '/', 'python')
3.2根据分隔符将字符串切成一小块一小块
“字符串”.split()
“字符串”.rsplit()
“字符串”.lsplit()
>>> "苟日新,日日新,又日新".split() #默认情况没有做切分
['苟日新,日日新,又日新']
>>> "苟日新 日日新 又日新".split() #切分空格
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(',') #通过中文逗号切割
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".rsplit(',') #从右往左切割
['苟日新', '日日新', '又日新']
>>>
>>> "苟日新,日日新,又日新".rsplit(',',1) #从右往左找到第一个分隔符切一刀
['苟日新,日日新,又日新']
>>> "苟日新,日日新,又日新".split(',',1) #逗号为英文逗号
['苟日新,日日新,又日新']
>>> "苟日新,日日新,又日新".split(',',1) #从左到右找到第一个分隔符切一刀
['苟日新', '日日新,又日新']
>>>
>>> "苟日新\n日日新\n又日新".rsplit('\n') #通过换行符进行分割
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r又日新".rsplit('\r') #
['苟日新', '日日新', '又日新']
3.3换行符混淆用进行切割
splitines(keepends=False)
字符串按行进行分割,将结果以列表形式返回
>>> "苟日新\n日日新\n又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\n日日新\r又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\n日日新\r\n又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\n日日新\r\n又日新".splitlines(True)
#Keepends,当为True时则包含换行符,否则默认false不包含
['苟日新\n', '日日新\r\n', '又日新']
>>>
4.字符串拼接
“字符串”.join()
>>> ".".join(["www","ilovefishc","com"]) #使用列表将多个待拼接的字符串包裹起来,字符串"."是用做进行分割
'www.ilovefishc.com'
>>> "^".join(("F","ish","C"))
'F^ish^C'
>>> s="fishc"
>>> s+="fishc" #通过加号+进行拼接
>>> s
'fishcfishc'
>>> s="fishc"
>>> ".".join(["fishc"*2])
'fishcfishc'
>>> "".join(("fishc","fishc")) ##使用元祖将多个待拼接的字符串包裹起来
'fishcfishc'
>>>
课后题:
1. 请问下面代码打印的内容是什么?
>>> "www.ilovefishc.com".removeprefix("w.")
'www.ilovefishc.com'
解析:区别于上一题,removeprefix(prefix) 和 removesuffix(suffix) 这两个方法是以字符串为单位的。
2. split() 方法常常被应用于对数据的解析处理,那么考考大家,如果要从字符串 “https://ilovefishc.com/html5/index.html” 中提取出 “ilovefishc.com”,使用 split() 方法应该如何实现呢?
答:
>>> "https://ilovefishc.com/html5/index.html".split('//')[1].split('/')[0]
'ilovefishc.com'
解析:
>>> "https://ilovefishc.com/html5/index.html".split('//')
['https:', 'ilovefishc.com/html5/index.html']
>>> "https://ilovefishc.com/html5/index.html".split('//')[1]
'ilovefishc.com/html5/index.html'
>>> "https://ilovefishc.com/html5/index.html".split('//')[1].split('/')
['ilovefishc.com', 'html5', 'index.html']
>>> "https://ilovefishc.com/html5/index.html".split('//')[1].split('/')[0]
'ilovefishc.com'
3. 如果要求按换行符来分割字符串,小甲鱼推荐使用 splitlines() 方法,而非 split(“\n”),你觉得小甲鱼的依据是什么?
答:相比起 split(“\n”) 来说,splitlines() 方法显得更加“智能”,它可以自动判断不同系统的换行符(比如 Linux 系统下的换行符是 “\n”;Mac 是 “\r”;而 Windows 则是 “\r\n”)。另外,splitlines() 方法还可以通过 keepends 参数来指定在结果中保留换行字符。
4.请问下面代码打印的内容是什么?
>>> print(",\n".join("FishC"))
F,
i,
s,
h,
C
题目来自链接: 小甲鱼python