![f5d705cee304fd75dc42a2bb09c6cc9f.png](https://i-blog.csdnimg.cn/blog_migrate/6aa00e3388c0ffe61dc5c27a612e5a56.jpeg)
37、partition()
描述:根据指定的分隔符(sep)将字符串进行分割。从字符串左边开始索引分隔符sep,索引到则停止索引。
语法: str.partition(sep)
参数:sep —— 指定的分隔符。
返回值:(head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。如果字符串包含指定的分隔符sep,则返回一个三元元组,第一个为分隔符sep左边的子字符串,第二个为分隔符sep本身,第三个为分隔符sep右边的子字符串。如果字符串不包含指定的分隔符sep,仍然返回一个三元元组,第一个元素为字符串本身,第二第三个元素为空字符串
示例:
string = 'https://www.google.com.hk/'string.partition("://") #字符串str中存在sep"://"('https', '://', 'www.google.com.hk/')string.partition(",") #字符串str中不存在sep",",返回了两个空字符串。('https://www.google.com.hk/', '', '')string.partition(".") #字符串str中存在两个"." 但索引到www后的"." 停止索引。('https://www', '.', 'google.com.hk/')type(string.partition("://")) #返回的是tuple类型tup
38、rpartition()
描述:根据指定的分隔符(sep)将字符串进行分割。从字符串右边(末尾)开始索引分隔符sep,索引到则停止索引。
语法: str.rpartition(sep)
参数:sep —— 指定的分隔符。
返回值: (head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。如果字符串包含指定的分隔符sep,则返回一个三元元组,第一个为分隔符sep左边的子字符串,第二个为分隔符sep本身,第三个为分隔符sep右边的子字符串。如果字符串不包含指定的分隔符sep,仍然返回一个三元元组,第一个元素为字符串本身,第二第三个元素为空字符串。
注:rpartition()函数与partition()函数用法相似,rpartition()函数从右边(末尾)开始索引,partition()函数从左边开始索引。
示例:
string = 'https://www.google.com.hk/'string.rpartition(".") #字符串str中不存在sep",",返回了两个空字符串。 ('https://www.google.com', '.', 'hk/')string.partition(".") #字符串str中不存在sep",",返回了两个空字符串。('https://www', '.', 'google.com.hk/')
39、split()
描述:拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表。
语法: str.split(sep=None, maxsplit=-1) [n]
- sep —— 分隔符,默认为空格,但不能为空即(")。
- maxsplit —— 最大分割参数,默认参数为-1。
- [n] —— 返回列表中下标为n的元素。列表索引的用法。
示例:
#默认空格分割str1 = "I love python"str1.split()['I', 'love', 'python']#取第三位str1.split()[2]'python'#以"."为分隔符,maxsplit默认为-1str2 = '列夫·尼古拉耶维奇·托尔斯泰'str2.split('·')['列夫', '尼古拉耶维奇', '托尔斯泰']#以"."为分隔符,只分割一次。str2.split('·',1) ['列夫', '尼古拉耶维奇·托尔斯泰
40、rsplit()
描述:拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表,类似于split()函数,只不过 rsplit()函数是从字符串右边(末尾)开始分割。
语法:str.rsplit(sep=None, maxsplit=-1) -> list of strings 返回 字符串列表 或str.rsplit(sep=None, maxsplit=-1)[n]
参数:
- sep —— 分隔符,默认为空格,但不能为空即(")。
- maxsplit —— 最大分割参数,默认参数为-1。
- [n] —— 返回列表中下标为n的元素。列表索引的用法。
示例:
# 只搜索到一个sep时,两者结果相同'abcxyzopq'.partition('xy')('abc', 'xy', 'zopq')'abcxyzopq'.rpartition('xy')('abc', 'xy', 'zopq')# 搜索到多个sep时,分别从左第一个、右第一个sep分割'abcxyzopxyq'.partition('xy')('abc', 'xy', 'zopxyq')'abcxyzopxyq'.rpartition('xy')('abcxyzop', 'xy', 'q
41、splitlines()
描述:按照('', '', '等)分隔,返回一个包含各行作为元素的列表,默认不包含换行符。 换行符 回车符 回车+换行
语法:S.splitlines([keepends=False])
参数:keepends -- 在输出结果里是否去掉行界符('', '', '等),默认为 False,不包含行界符,如果为 True,则保留行界符。
示例:
# 字符串以换行符为分隔符拆分,去掉换行符'HOWSOFTWORKS'.splitlines()['HOW', 'SOFT', 'WORKS']# 如果keepends为True,保留换行符'HOWSOFTWORKS'.splitlines(True)['HOW', 'SOFT', 'WORKS']"123456789abc".splitlines()['123', '456', '789', 'abc'
42、join()
描述:将iterable变量的每一个元素后增加一个str字符串。
语法: sep.join(iterable)
- sep——分隔符。可以为空。
- iterable—— 要连接的变量 ,可以是 字符串,元组,字典,列表等。
示例:
python中经常看到join,特别是在自然语言处理的时候,分词什么的,但是很多初学者不理解其中的意思,这里进行详细的介绍,希望对大家能有帮助。将可迭代对象(iterable)中的字符串使用string连接起来。注意,iterable中必须全部是字符串类型,否则报错。如果你还是python的初学者,还不知道iterable是什么,却想来看看join的具体语法,那么你可以暂时将它理解为:字符串string、列表list、元组tuple、字典dict、集合set。当然还有生成器generator等也可以用该方法。1)字符串L='python''_'.join(L)'p_y_t_h_o_n''_uu_'.join(L)'p_uu_y_uu_t_uu_h_uu_o_uu_n'2)元组L1=('1','2','3')'_'.join(L1)'1_2_3'3)集合。注意,集合无序。L2={'p','y','t','h','o','n'}'_'.join(L2)'t_n_o_h_y_p'4)列表L2=['py','th','o','n']'_'.join(L2)'py_th_o_n'5)字典L3={'name':"malongshuai",'gender':'male','from':'China','age':18}'_'.join(L3)'name_gender_from_age'6)iterable参与迭代的部分必须是字符串类型,不能包含数字或其他类型。L1=(1,2,3)'_'.join(L1)TypeError: sequence item 0: expected str instance, int found以下两种也不能join。L1=('ab',2)L2=('AB',{'a','cd'})