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函数切分字符串时产生的字符串,是合情合理的,它避免了一个字符串以不同的分隔符切分却产生相同结果的情况发生。
评论