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默认为-1
str2 = '列夫·尼古拉耶维奇·托尔斯泰'
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()
描述:按照('\n', '\r', \r\n'等)分隔,返回一个包含各行作为元素的列表,默认不包含换行符。\n 换行符 \r 回车符 \r\n 回车 换行
语法:S.splitlines([keepends=False])
参数:keepends -- 在输出结果里是否去掉行界符('\r', '\r\n', \n'等),默认为 False,不包含行界符,如果为 True,则保留行界符。
示例:
# 字符串以换行符为分隔符拆分,去掉换行符
'HOW\nSOFT\nWORKS'.splitlines()
['HOW', 'SOFT', 'WORKS']
# 如果keepends为True,保留换行符
'HOW\nSOFT\nWORKS'.splitlines(True)
['HOW\n', 'SOFT\n', 'WORKS']
"123\n456\r789\r\nabc".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'})