鱼C论坛

 找回密码
 立即注册
查看: 2475|回复: 3

[技术交流] 【原创】python 字符串的split()函数详解

[复制链接]
发表于 2016-3-25 11:15:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
split翻译为分裂。  split()就是将一个字符串分裂成多个字符串组成的列表。

split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割。

//---当不带参数时
example:
st0= '   song    huan     gong    '
print(st0.split())
结果为:
['song', 'huan', 'gong']
结论:当不带参数时,默认是以空格作为参数,不管空格在哪,或者有几个
全部被镐掉了!

//---当带参数时
这种情况就不能按照上面的方式去理解了
example:
st0= 'iisongiiihuaniiiigongi'
print(st0.split('i'))
结果为:['', '', 'song', '', '', 'huan', '', '', '', 'gong', '']
分析:
        这个结果可能就有点出乎意料了并不是想象中的['song', 'huan', 'gong']
而是多了很多空字符串元素'',这个怎么理解呢?
   我的理解方式是,当带参数时,我们得把字符串想象成一块五花肉,我们要做
一件奇葩的事情,就是将肥肉丢到垃圾桶,把瘦肉留下。
        比如'iisongiiihuaniiiigongi'这串五花肉,'i'就是要丢掉的肥肉,每次还只能切
'i'这么多。
        切的时候是从左到右,一刀下去肥肉'i'丢掉,刀刃左边的部分拿走作为list的一个元素,
刀刃右边的就是剩下的,那么继续切剩下的部分,直到切完。

这块肉比较特殊:
        其一、他的开始和结尾都有i,而且i还不止一个!这样按照上述的方法就会切出
空气,就是列表中我们看到的'', 空字符串元素。
   如'iisongiiihuaniiiigongi',当第一刀下去的时候,第一个i被丢到了垃圾桶,
而刀刃的左边什么都没有,所以列表的第一个元素就是'',空字符串元素。
        一刀下去之后,就剩下'isongiiihuaniiiigongi'。
        所以第二刀下去之后,又得到一个空字符串元素,目前“肉”就剩下'songiiihuaniiiigongi'。
        第三刀又切掉一个i,那么刀刃左边的就是song,所以第三个元素就是'song'。
   知道切到最后,整坨肉就只剩下一个i了,使用最后一刀下去i被切掉了,刀刃的左边此时也
什么都没有了,所以最后一个元素任然是空字符串。
       

所以课后习题中:
st1 = 'a href = http://www.fishc.com/forum.php'
如果这么切的话,www.fishc.com应该是第3个元素,及下下标为2的元素。
print(st1.split('/')[2])


一个超级好的例子:
>>> str="hello boy<[www.doiido.com]>byebye"
&nbsp;&nbsp;
>>> print str.split("[")[1].split("]")[0]
www.doiido.com
&nbsp;&nbsp;
>>> print str.split("[")[1].split("]")[0].split(".")
['www', 'doiido', 'com']
&nbsp;


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-26 11:42:36 | 显示全部楼层
最后这一段好像不是原创哟,嘿嘿,从别的网站看看到过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-26 21:54:37 | 显示全部楼层
仙人掌的花go 发表于 2016-3-26 11:42
最后这一段好像不是原创哟,嘿嘿,从别的网站看看到过

最后一个例子是copy的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-26 10:40:05 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 23:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表