You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何split()返回额外元素?字符串拆分后长度不符问题

为什么拆分后的结果长度为4而非3?

这个问题其实是Python的str.split()方法的一个常见特性,我来帮你拆解一下背后的原因:

首先先把你的代码格式化出来,方便分析:

brain = " Know yourself! Understand yourself! Correct yourself! "
brain = brain.strip()
change = brain.split("yourself!")
print(len(change))

一步步分析执行过程

  1. strip()后的字符串:执行brain.strip()后,原字符串的首尾空格被移除,得到的内容是:
    "Know yourself! Understand yourself! Correct yourself!"
    
  2. split()的拆分逻辑:当你用"yourself!"作为分隔符时,Python会在字符串中找到所有匹配该分隔符的位置,然后将分隔符之间的内容拆分为列表元素。注意:如果分隔符出现在字符串的末尾,那么分隔符之后的空内容也会被作为一个元素保留在列表中。

你的目标字符串里有3个"yourself!",拆分后的列表实际是:

['Know ', ' Understand ', ' Correct ', '']

最后那个空字符串就是导致列表长度为4的原因。

验证结果

你可以直接打印change的内容来确认:

print(change)  # 输出: ['Know ', ' Understand ', ' Correct ', '']

如何得到长度为3的结果?

如果希望过滤掉空字符串,可以用列表推导式筛选非空元素:

change = [part for part in brain.split("yourself!") if part]
print(len(change))  # 输出: 3

内容的提问来源于stack exchange,提问作者faezeh eghlima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:07:53