Python字符串split函數(shù)知多少【Python每日一個(gè)知識(shí)點(diǎn)第75期】
Python字符串操作是一名開發(fā)人員的基本功,求職面試往往也會(huì)通過字符串相關(guān)考題來考驗(yàn)開發(fā)者對于語言基礎(chǔ)的掌握。Python字符串的分割操作更是考察重點(diǎn),能否靈活運(yùn)用split被視為開發(fā)人員對于Python語言風(fēng)格適應(yīng)程度的重要標(biāo)準(zhǔn)。
【Python每日一個(gè)知識(shí)點(diǎn)第75期】Python字符串split函數(shù)知多少
print?'a b c d e f g'.split()
print 'a,b,c,d,e,f,g'.split(',')
結(jié)果都是:['a','b','c','d','e','f','g']
字符串的split函數(shù)默認(rèn)分隔符是空格 ' ',如果沒有分隔符,就把整個(gè)字符串作為列表的一個(gè)元素
S.split([sep [,maxsplit]]) -> list of strings
以sep為分隔符,把S分隔成一個(gè)list。maxsplit表示分割的次數(shù)。默認(rèn)的分割字符為空白字符。空白字符包括空格、TAB、換行...另外,還有S.rsplit([sep,[maxsplit]])和S.rsplit([sep,[maxsplit]])。
- contype?=?'application/octet-stream'??
- maintype,?subtype?=?contype.split('/',?1)??
- print?maintype,subtype??
結(jié)果為:application octet-stream
即maintype值為application,subtype值為:octet-stream
也就是說字符串contype通過split,使用符號“/”做為分隔字符串,如果指出maxsplit,那么至多maxsplit完成分割。注意,由于列表是由下標(biāo)0開始,所以如果maxsplit值為1,正如上面的例子中一樣,表示要分為兩段。分別給予列表中的兩個(gè)變量:maintype和subtype
測試代碼:
- contype?=?'application/octet-stream/sss'??
- maintype,?subtype?=?contype.split('/',?1)??
- print?maintype,subtype??
結(jié)果為:application octet-stream/sss
即maintype值為application,subtype值為:octet-stream/sss
由于這里列表中只有兩個(gè)變量,所以maxsplit值只能為1,小于1或大于1都將會(huì)顯示錯(cuò)誤。也就是說,如果采用上述給列表賦值方式,那么maxsplit的值必須要等于列表的下標(biāo)最大值,在提醒一下,列表下標(biāo)從0開始。如果列表有四個(gè)元素,那么maxsplit值必須等于3。
如果分隔符(sep)沒有指定或?yàn)闊o,任何空白的字符串將做為“分隔字符串”,且空白字符從結(jié)果中被刪除,注意:空白字符包括空格、換行符、制表符等,例如:
- print?'a?b?c?d?e?f?\t\n???g'.split()??
輸出的結(jié)果為:['a', 'b', 'c', 'd', 'e', 'f', 'g']
與split作用相反,我在這也介紹一下join。join用來連接字符串,與split恰好相反,拆分字符串的。不用多解釋,看完代碼,其意自現(xiàn)了。
- >>>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的功能就是返回一個(gè)字符串——即以其參數(shù)字符串做為連接符,將序列中的每個(gè)元素連接起來。
《Python入門每日一個(gè)知識(shí)點(diǎn)》欄目是馬哥教育Python年薪20萬+的學(xué)員社群特別發(fā)起,分享Python工具、Python語法、Python項(xiàng)目等知識(shí)點(diǎn),幫助大家快速的了解Python學(xué)習(xí),快速步入Python高薪的快車道。
http://haohuigou.com/73198.html