轉載自:https://www.cnblogs.com/douzi2/p/5579651.html
1、split翻譯為分裂。 split()就是將一個字符串分裂成多個字符串組成的列表。
2、split()當不帶參數時以空格進行分割,當帶參數時,以該參數進行分割。
a、當不帶參數時
st0= ' song huan gong ' print(st0.split())
結果為:
['song', 'huan', 'gong']
結論:當不帶參數時,默認是以空格作為參數,不管空格在哪,或者有幾個 全部被鎬掉了!
b、當帶參數時 這種情況就不能按照上面的方式去理解了
st0= 'iisongiiihuaniiiigongi' print(st0.split('i'))
結果為:
['', '', 'song', '', '', 'huan', '', '', '', 'gong', '']
c、這個結果可能就有點出乎意料了並不是想象中的['song', 'huan', 'gong'] 而是多了很多空字符串元素'',這個怎么理解呢? 我的理解方式是,當帶參數時,我們得把字符串想象成一塊五花肉,我們要做 一件奇葩的事情,就是將肥肉丟到垃圾桶,把瘦肉留下。 比如'iisongiiihuaniiiigongi'這串五花肉,'i'就是要丟掉的肥肉,每次還只能切 'i'這么多。 切的時候是從左到右,一刀下去肥肉'i'丟掉,刀刃左邊的部分拿走作為list的一個元素, 刀刃右邊的就是剩下的,那么繼續切剩下的部分,直到切完。
'iisongiiihuaniiiigongi'這塊肉比較特殊:
d、其一、他的開始和結尾都有i,而且i還不止一個!這樣按照上述的方法就會切出 空氣,就是列表中我們看到的'', 空字符串元素。 如'iisongiiihuaniiiigongi',當第一刀下去的時候,第一個i被丟到了垃圾桶, 而刀刃的左邊什么都沒有,所以列表的第一個元素就是'',空字符串元素。 一刀下去之后,就剩下'isongiiihuaniiiigongi'。 所以第二刀下去之后,又得到一個空字符串元素,目前“肉”就剩下'songiiihuaniiiigongi'。 第三刀又切掉一個i,那么刀刃左邊的就是song,所以第三個元素就是'song'。 直到切到最后,整坨肉就只剩下一個i了,使用最后一刀下去i被切掉了,刀刃的左邊此時也 什么都沒有了,所以最后一個元素任然是空字符串。
3、一個超級好的例子:
>>> str="hello boy<[www.doiido.com]>byebye" >>> str.split("[")[1].split("]")[0] 'www.doiido.com' >>> str.split("[")[1].split("]")[0].split(".") ['www', 'doiido', 'com']