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]])。

  1. contype?=?‘application/octet-stream’??
  2. maintype,?subtype?=?contype.split(‘/’,?1)??
  3. print?maintype,subtype??

結果為:application octet-stream
即maintype值為application,subtype值為:octet-stream

也就是說字符串contype通過split,使用符號“/”做為分隔字符串,如果指出maxsplit,那么至多maxsplit完成分割。注意,由于列表是由下標0開始,所以如果maxsplit值為1,正如上面的例子中一樣,表示要分為兩段。分別給予列表中的兩個變量:maintype和subtype

測試代碼:

  1. contype?=?‘application/octet-stream/sss’??
  2. maintype,?subtype?=?contype.split(‘/’,?1)??
  3. print?maintype,subtype??

結果為:application octet-stream/sss
即maintype值為application,subtype值為:octet-stream/sss

由于這里列表中只有兩個變量,所以maxsplit值只能為1,小于1或大于1都將會顯示錯誤。也就是說,如果采用上述給列表賦值方式,那么maxsplit的值必須要等于列表的下標最大值,在提醒一下,列表下標從0開始。如果列表有四個元素,那么maxsplit值必須等于3。

如果分隔符(sep)沒有指定或為無,任何空白的字符串將做為“分隔字符串”,且空白字符從結果中被刪除,注意:空白字符包括空格、換行符、制表符等,例如:

  1. print?‘a?b?c?d?e?f?\t\n???g’.split()??

輸出的結果為:[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]

與split作用相反,我在這也介紹一下join。join用來連接字符串,與split恰好相反,拆分字符串的。不用多解釋,看完代碼,其意自現了。

  1. >>>li?=?[‘my’,‘name’,‘is’,‘bob’]??
  2. >>>‘?‘.join(li)??
  3. ‘my?name?is?bob’??
  1. >>>s?=?‘_’.join(li)??
  2. >>>s??
  3. ‘my_name_is_bob’??
  1. >>>s.split(‘_’)??
  2. [‘my’,?‘name’,?‘is’,?‘bob’]??

join的功能就是返回一個字符串——即以其參數字符串做為連接符,將序列中的每個元素連接起來。


《Python入門每日一個知識點》欄目是馬哥教育Python年薪20萬+的學員社群特別發起,分享Python工具、Python語法、Python項目等知識點,幫助大家快速的了解Python學習,快速步入Python高薪的快車道。

【超全整理】《Python自動化全能開發從入門到精通》python基礎教程筆記全放送

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播