Python字符串split函数知多少【Python每日一个知识点第75期】
Python字符串操作是一名开发人员的基本功,求职面试往往也会通过字符串相关考题来考验开发者对于语言基础的掌握。Python字符串的分割操作更是考察重点,能否灵活运用split被视为开发人员对于Python语言风格适应程度的重要标准。
【Python每日一个知识点第75期】Python字符串split函数知多少
print 'a b c d e f g'.split()
print 'a,b,c,d,e,f,g'.split(',')
结果都是:['a','b','c','d','e','f','g']
字符串的split函数默认分隔符是空格 ' ',如果没有分隔符,就把整个字符串作为列表的一个元素
S.split([sep [,maxsplit]]) -> list of strings
以sep为分隔符,把S分隔成一个list。maxsplit表示分割的次数。默认的分割字符为空白字符。空白字符包括空格、TAB、换行...另外,还有S.rsplit([sep,[maxsplit]])和S.rsplit([sep,[maxsplit]])。
- contype = 'application/octet-stream'
- maintype, subtype = contype.split('/', 1)
- print maintype,subtype
结果为:application octet-stream
即maintype值为application,subtype值为:octet-stream
也就是说字符串contype通过split,使用符号“/”做为分隔字符串,如果指出maxsplit,那么至多maxsplit完成分割。注意,由于列表是由下标0开始,所以如果maxsplit值为1,正如上面的例子中一样,表示要分为两段。分别给予列表中的两个变量:maintype和subtype
测试代码:
- contype = 'application/octet-stream/sss'
- maintype, subtype = contype.split('/', 1)
- print maintype,subtype
结果为:application octet-stream/sss
即maintype值为application,subtype值为:octet-stream/sss
由于这里列表中只有两个变量,所以maxsplit值只能为1,小于1或大于1都将会显示错误。也就是说,如果采用上述给列表赋值方式,那么maxsplit的值必须要等于列表的下标最大值,在提醒一下,列表下标从0开始。如果列表有四个元素,那么maxsplit值必须等于3。
如果分隔符(sep)没有指定或为无,任何空白的字符串将做为“分隔字符串”,且空白字符从结果中被删除,注意:空白字符包括空格、换行符、制表符等,例如:
- print 'a b c d e f \t\n g'.split()
输出的结果为:['a', 'b', 'c', 'd', 'e', 'f', 'g']
与split作用相反,我在这也介绍一下join。join用来连接字符串,与split恰好相反,拆分字符串的。不用多解释,看完代码,其意自现了。
- >>>li = ['my','name','is','bob']
- >>>' '.join(li)
- 'my name is bob'
- >>>s = '_'.join(li)
- >>>s
- 'my_name_is_bob'
- >>>s.split('_')
- ['my', 'name', 'is', 'bob']
join的功能就是返回一个字符串——即以其参数字符串做为连接符,将序列中的每个元素连接起来。
《Python入门每日一个知识点》栏目是马哥教育Python年薪20万+的学员社群特别发起,分享Python工具、Python语法、Python项目等知识点,帮助大家快速的了解Python学习,快速步入Python高薪的快车道。
http://www.magedu.com/73198.html