python的split函数切分字符串时为什么会产生空字符串

群里的一个小伙伴提了一个问题,他使用split函数切分字符串得到的结果里有空字符串,他对空字符串的出现感到困惑不解。

text = '1aa2'
print(text.split('a'))      # ['1', '', '2']

这个空字符串是如何产生的呢?以a为分隔符切分时,我们认为两个a之间有一个空字符串,因此产生一个空字符串。

感觉很奇怪,但是很合理。如果不这样处理,那么结果就变成了 [‘1’, ‘2’],符合你的直觉,但这回导致一个尴尬的情况

text = '1aa2'
print(text.split('aa'))  # ['1',  '2']

字符串’1aa2’ 分别以a和aa为分隔符切分,得到的结果竟然是一样的,这显然是不合逻辑的,这就好比两根油条,长度一样,你用菜刀分别以两个不同的宽度去切油条,最终两根油条切完后完全一样,这简直是匪夷所思。

split函数切分字符串时产生的字符串,是合情合理的,它避免了一个字符串以不同的分隔符切分却产生相同结果的情况发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值