设为首页 加入收藏

TOP

Python字符串方法大全(四)
2018-06-09 10:07:59 】 浏览:694
Tags:Python 字符串 方法 大全

分割换行符。虽然它有点像split('\n')或split('\r\n'),但它们有些区别,见下文解释。


首先是split()的示例分析(rsplit()示例略)。


# sep为单个字符时
>>> '1,2,3'.split(',')
['1', '2', '3']


>>> '1,2,3'.split(',',1)
['1', '2,3']    # 只分割了一次


>>> '1,2,,3'.split(',')
['1', '2', '', '3']  # 不会压缩连续的分隔符


>>> '<hello><><world>'.split('<')
['', 'hello>', '>', 'world>']


# sep为多个字符时
>>> '<hello><><world>'.split('<>')
['<hello>', '<world>']


# 不指定sep时
>>> '1 2 3'.split()
['1', '2', '3']


>>> '1 2 3'.split(maxsplit=1)
['1', '2 3']


>>> '  1    2  3  '.split()
['1', '2', '3']


>>> '  1    2  3  \n'.split()
['1', '2', '3']


# 显式指定sep为空格、制表符、换行符时
>>> ' 1  2  3  \n'.split(' ')
['', '1', '', '2', '', '3', '', '\n']


>>> ' 1  2  3  \n'.split('\t')
[' 1  2  3  \n']


>>> ' 1 2\n3 \n'.split('\n')
[' 1 2', '3 ', '']  # 注意列表的最后一项''


>>> ''.split('\n')
['']


再是splitlines()的示例分析。


splitlines()中可以指定各种换行符,常见的是\n、\r、\r\n。如果指定keepends为True,则保留所有的换行符。


>>> 'ab c\n\nde fg\rkl\r\n'.splitlines()
['ab c', '', 'de fg', 'kl']


>>> 'ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']


将split()和splitlines()相比较一下:


#### split()
>>> ''.split('\n')
['']            # 因为没换行符可分割


>>> 'One line\n'.split('\n')
['One line', '']


#### splitlines()
>>> "".splitlines()
[]              # 因为没有换行符可分割


>>> 'Two lines\n'.splitlines()
['Two lines']


7.join


S.join(iterable)


将可迭代对象(iterable)中的字符串使用S连接起来。注意,iterable中必须全部是字符串类型,否则报错。


如果你还是python的初学者,还不知道iterable是什么,却想来看看join的具体语法,那么你可以暂时将它理解为:字符串string、列表list、元组tuple、字典dict、集合set。


例如:


1.字符串


>>> L='python'
>>> '_'.join(L)
'p_y_t_h_o_n'


2.元组


>>> L1=('1','2','3')
>>> '_'.join(L1)
'1_2_3'


3.集合。注意,集合无序。


>>> L2={'p','y','t','h','o','n'}
>>> '_'.join(L2)
'n_o_p_h_y_t'


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)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found


以下两种也不能join。


>>> L1=('ab',2)
>>> L2=('AB',{'a','cd'})


8.修剪:strip、lstrip和rstrip


S.strip([chars])
 S.lstrip([chars])
 S.rstrip([chars])


分别是移除左右两边、左边、右边的字符char。如果不指定chars或者指定为None,则默认移除空白(空格、制表符、换行符)。


唯一需要注意的是,chars可以是多个字符序列。在移除时,只要是这个序列中的字符,都会被移除。


例如:


1.移除单个字符或空白。


>>> '  spacious  '.lstrip()
'spacious  '
 
>>> '  spacious  '.rstrip()
'  spacious'
 
>>> 'spacious  '.lstrip('s')
'pacious  '
 
>>> 'spacious'.rstrip('s')
'spaciou'


2.移除字符中的字符。


>>> print('www.example.com'.lstrip('cmowz.'))
example.com
>>> print('wwwz.example.com'.lstrip('cmowz.'))
example.com
>>&
编程开发网

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java泛型实例详解 下一篇Java高并发之线程池详解