鱼C论坛

 找回密码
 立即注册
查看: 13185|回复: 54

[知识点备忘] 第030讲:字符串(IV)

[复制链接]
发表于 2020-12-2 18:30:59 | 显示全部楼层 |阅读模式
购买主题 已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-4 20:36:19 | 显示全部楼层
哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-10 19:59:45 From FishC Mobile | 显示全部楼层
来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-4 17:24:40 | 显示全部楼层
本节讲了“截取”、“拆分”和“拼接”三种类别下的总共11个方法,都很实用。其中用于拆分字符串的split()和rsplit()方法非常灵活;用于拼接字符串的join()方法十分常用,也很高效——经测试,使用join()方法比使用加号拼接字符串的速度要快得多,并且随着数据的增加,两者的性能差距越来越大,这也正是大牛忠爱join()方法的原因!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-29 17:00:35 | 显示全部楼层
小古比鱼 发表于 2021-3-4 17:24
本节讲了“截取”、“拆分”和“拼接”三种类别下的总共11个方法,都很实用。其中用于拆分字符串的split() ...

请问lstrip怎么界定哪几个字符是属于左边的字符呢?哪些是右呢?是不是当截取掉参数指定的字符后,一直截取到没有指定的参数为止?也就是说只要能截取就认为是左边(或右边)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-30 09:43:34 | 显示全部楼层
O2H2O 发表于 2021-4-29 17:00
请问lstrip怎么界定哪几个字符是属于左边的字符呢?哪些是右呢?是不是当截取掉参数指定的字符后,一直截 ...

是的,小古比鱼也是这么理解的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-19 10:56:32 | 显示全部楼层
**字符串4**

截取:strip(chars=None)     lstrip(chars=None)    rstrip(chars=None)              removeprefix(chars=None)    rempvesuffix(chars=None)

strip(chars=None):返回一个去除左右两侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

lstrip(chars=None):返回一个去除左侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

rstrip(chars=None):返回一个去除右侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

>>> "    左侧不要留白".lstrip()
'左侧不要留白'
>>> "右侧不要留白     ".rstrip()
'右侧不要留白'
>>> "   左右不要留白   ".strip()
'左右不要留白'
>>> "www.ilovefishc.com".lstrip("wcom.")
'ilovefishc.com'
>>> "www.ilovefishc.com".rstrip("wcom.")
'www.ilovefish'
>>> "www.ilovefishc.com".strip("wcom.")
'ilovefish'
[按照单个字符为单位,在目标字符串依次寻找,直至遇到第一个不相同的字符时停止]

removeprefix(chars=None):如果存在 chars 参数指定的前缀子字符串,则返回一个将该前缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝

rempvesuffix(chars=None):如果存在 chars 参数指定的后缀子字符串,则返回一个将该后缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝

>>> "www.ilovefishc.com".removeprefix("www.")
'ilovefishc.com'
>>> "www.ilovefishc.com".removesuffix(".com")
'www.ilovefishc'

拆分和拼接:partition(sep)       rpartition(sep)        split(sep=None,maxsplit=-1)    rsplit(sep=None,maxsplit=-1)      splitlines(keepends=False)        join(iterable)

partition(sep):在字符串中自左往右搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 ('在sep前面的部分', 'sep', '在sep后面的部分');如果未找到,则返回 ('原字符串', '', '')

rpartition(sep):在字符串中自右向左搜索sep参数指定的分隔符,如果找到,返回一个 3 元组 ('在sep前面的部分', 'sep', '在sep后面的部分');如果未找到,则返回 ('', '', '原字符串')

>>> "www.ilovefishc.com".partition(".")
('www', '.', 'ilovefishc.com')
>>> "www.ilovefishc.com/python".rpartition("/")
('www.ilovefishc.com', '/', 'python')

split(sep=None,maxsplit=-1):将字符串自左往右进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制

rsplit(sep=None,maxsplit=-1):将字符串自右向左进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制

>>> "苟日新,日日新,又日新".split()
['苟日新,日日新,又日新']
>>> "苟日新 日日新 又日新".split()[默认情况下会切分空格]
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".rsplit(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(",", 1)
['苟日新', '日日新,又日新']
>>> "苟日新,日日新,又日新".rsplit(",", 1)
['苟日新,日日新', '又日新']

splitlines(keepends=False):将字符串按行分割,并将结果以列表的形式返回;keepends 参数指定是否包含换行符,True 是包含,False 是不包含

>>> "苟日新\n日日新\n又日新".split('\n')
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r又日新".split('\r')
['苟日新', '日日新', '又日新']
>>> "苟日新\n日日新\n又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r\n又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r\n又日新".splitlines(True)
['苟日新\r', '日日新\r\n', '又日新']
[\n在Linux系统下表示换行,在Mac系统下换行符则是\r,Windows系统下是\r\n]

join(iterable):连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间;例如:'^'.join(\["F", "i", "sh", "C"\]) -> 'F^i^sh^C'

>>> ".".join(["www", "ilovefishc", "com"])
'www.ilovefishc.com'
>>> "^".join(("F", "ish", "C"))
'F^ish^C'
>>> s = "FishC"
>>> s += s
>>> s
'FishCFishC'
>>> "".join(("FishC", "FishC"))
'FishCFishC'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 5 反对 0

使用道具 举报

发表于 2021-5-20 14:58:16 | 显示全部楼层
复习:

**字符串4**

截取:strip(chars=None)     lstrip(chars=None)    rstrip(chars=None)              removeprefix(chars=None)    rempvesuffix(chars=None)

strip(chars=None):返回一个去除左右两侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

lstrip(chars=None):返回一个去除左侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

rstrip(chars=None):返回一个去除右侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

>>> "    左侧不要留白".lstrip()
'左侧不要留白'
>>> "右侧不要留白     ".rstrip()
'右侧不要留白'
>>> "   左右不要留白   ".strip()
'左右不要留白'
>>> "www.ilovefishc.com".lstrip("wcom.")
'ilovefishc.com'
>>> "www.ilovefishc.com".rstrip("wcom.")
'www.ilovefish'
>>> "www.ilovefishc.com".strip("wcom.")
'ilovefish'
[按照单个字符为单位,在目标字符串依次寻找,直至遇到第一个不相同的字符时停止]

removeprefix(chars=None):如果存在 chars 参数指定的前缀子字符串,则返回一个将该前缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝

rempvesuffix(chars=None):如果存在 chars 参数指定的后缀子字符串,则返回一个将该后缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝

>>> "www.ilovefishc.com".removeprefix("www.")
'ilovefishc.com'
>>> "www.ilovefishc.com".removesuffix(".com")
'www.ilovefishc'

拆分和拼接:partition(sep)       rpartition(sep)        split(sep=None,maxsplit=-1)    rsplit(sep=None,maxsplit=-1)      splitlines(keepends=False)        join(iterable)

partition(sep):在字符串中自左往右搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 ('在sep前面的部分', 'sep', '在sep后面的部分');如果未找到,则返回 ('原字符串', '', '')

rpartition(sep):在字符串中自右向左搜索sep参数指定的分隔符,如果找到,返回一个 3 元组 ('在sep前面的部分', 'sep', '在sep后面的部分');如果未找到,则返回 ('', '', '原字符串')

>>> "www.ilovefishc.com".partition(".")
('www', '.', 'ilovefishc.com')
>>> "www.ilovefishc.com/python".rpartition("/")
('www.ilovefishc.com', '/', 'python')

split(sep=None,maxsplit=-1):将字符串自左往右进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制

rsplit(sep=None,maxsplit=-1):将字符串自右向左进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制

>>> "苟日新,日日新,又日新".split()
['苟日新,日日新,又日新']
>>> "苟日新 日日新 又日新".split()[默认情况下会切分空格]
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".rsplit(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(",", 1)
['苟日新', '日日新,又日新']
>>> "苟日新,日日新,又日新".rsplit(",", 1)
['苟日新,日日新', '又日新']

splitlines(keepends=False):将字符串按行分割,并将结果以列表的形式返回;keepends 参数指定是否包含换行符,True 是包含,False 是不包含

>>> "苟日新\n日日新\n又日新".split('\n')
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r又日新".split('\r')
['苟日新', '日日新', '又日新']
>>> "苟日新\n日日新\n又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r\n又日新".splitlines()
['苟日新', '日日新', '又日新']
>>> "苟日新\r日日新\r\n又日新".splitlines(True)
['苟日新\r', '日日新\r\n', '又日新']
[\n在Linux系统下表示换行,在Mac系统下换行符则是\r,Windows系统下是\r\n]

join(iterable):连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间;例如:'^'.join(\["F", "i", "sh", "C"\]) -> 'F^i^sh^C'

>>> ".".join(["www", "ilovefishc", "com"])
'www.ilovefishc.com'
>>> "^".join(("F", "ish", "C"))
'F^ish^C'
>>> s = "FishC"
>>> s += s
>>> s
'FishCFishC'
>>> "".join(("FishC", "FishC"))
'FishCFishC'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2021-8-8 20:23:28 | 显示全部楼层

十分感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-27 21:16:02 | 显示全部楼层
>>> "        左侧不要留白".lstrip
<built-in method lstrip of str object at 0x000001E1519B03B0>
>>> "        左侧不要留白".lstrip()
'左侧不要留白'
>>> "右侧不要留白  ".rstrip()
'右侧不要留白'
>>> " 两边都不要留白  ".strip()
'两边都不要留白'
>>> "www.ilovefishc.com".lstrip("wcom.")
'ilovefishc.com'
>>> "www.ilovefishc.com".rstrip("wcom.")
'www.ilovefish'
>>> "www.ilovefishc.com".strip("wcom.")
'ilovefish'
>>> "www.ilovefishc.com".removeprefix("www.")
'ilovefishc.com'
>>> "www.ilovefishc.com".removesuffix(".com")
'www.ilovefishc'
>>> "www.ilovefishc.com".partition(".")
('www', '.', 'ilovefishc.com')
>>> "www.ilovefishc.com".rpartition(".")
('www.ilovefishc', '.', 'com')
>>> "苟日新,日日新,又日新".split()
['苟日新,日日新,又日新']
>>> "苟日新 日日新 又日新".split()
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".rsplit(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(",",1)
['苟日新', '日日新,又日新']
>>> "苟日新,日日新,又日新".rsplit(",",1)
['苟日新,日日新', '又日新']
>>> "苟日新/n日日新/n又日新".rsplit("/n")
['苟日新', '日日新', '又日新']
>>> "苟日新/r日日新/r又日新".rsplit("/r")
['苟日新', '日日新', '又日新']
>>> "苟日新/n日日新/n又日新".splitlines()
['苟日新/n日日新/n又日新']
>>> "苟日新/r日日新/r又日新".splitlines()
['苟日新/r日日新/r又日新']
>>> "苟日新/r/n日日新/r/n又日新".splitlines()
['苟日新/r/n日日新/r/n又日新']
>>> "苟日新/r/n日日新/r/n又日新".splitlines(True)
['苟日新/r/n日日新/r/n又日新']
>>> ".".join(["www","ilovefishc",".com"])
'www.ilovefishc..com'
>>> ".".join(["www","ilovefishc","com"])
'www.ilovefishc.com'
>>> "^".join(("F","ish","C"))
'F^ish^C'
>>> "".join(("Fish"*2))
'FishFish'
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2022-1-23 17:42:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-25 20:34:31 | 显示全部楼层
打卡~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-11 12:19:18 | 显示全部楼层
怎么这里人这么少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-11 12:28:16 | 显示全部楼层
>>>"www.ilovefishc.com".lstrip("wcom.")
'ilovefishc.com'
>>> "www.ilovefishc.com".rstrip("wcom.")
'www.ilovefish'
>>> "www.ilovefishc.com".strip("wcom.")
'ilovefish'
rstiip 和 lstrip 截取过程中是按照单个字符为单位,在目标字符串依次寻找,直至遇到第一个不相同的字符时停止
那为什么>>>"www.ilovefishc.com".lstrip("wcom.")
'ilovefishc.com' 中o为什么没被截取掉
>>> "www.ilovefishc.com".rstrip("wcom.")
'www.ilovefish' 中c可以被截掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-11 12:34:30 | 显示全部楼层
>>> "www.ilovefishc.com".lstrip("wcom.")
'ilovefishc.com'                       此处wcom.四个元素分别从左到右在目标字符串依次寻找,为什么o没被截取
>>> "www.ilovefishc.com".rstrip("wcom.")
'www.ilovefish'                        此处o被截取 可以理解
>>> "www.ilovefishc.com".strip("wcom.")
'ilovefish'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-21 11:41:02 | 显示全部楼层
打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-9 16:36:55 | 显示全部楼层
感觉认真学习的自己还是有进步啊呀,至少能看懂一些简单的玩意儿了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-5-28 11:19:17 | 显示全部楼层
在使用removeprefix和removesuffix的时候python报错了,检查了一下之后我发现我的python3.8.0的字符串没有这两个方法……这是版本问题还是有什么东西没安装上的问题啊orz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-20 10:10:27 | 显示全部楼层
学习打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-5 15:20:10 | 显示全部楼层
温故一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 09:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表