自定义实现split()方法时最后一个单词未加入列表,求修正代码
修正后的字符串split复现代码
问题原因
你的代码仅在遇到空格时将临时存储的单词追加到结果列表,但最后一个单词后没有空格触发判断逻辑,导致它一直留在count变量中未被加入最终结果。
修正代码
def splitstring(s): a = [] count = '' for i in s: if i == ' ': a.append(count) count = '' else: count += i # 循环结束后,处理最后一个未被追加的单词 if count: a.append(count) return a # 测试示例 input_str = 'Hello World' print(splitstring(input_str)) # 输出: ['Hello', 'World']
可选优化(对齐原生split()行为)
如果需要处理连续空格、字符串首尾空格的场景,可以调整逻辑避免生成空字符串:
def splitstring(s): a = [] count = '' for i in s: if i == ' ': # 仅当临时变量不为空时才追加,跳过连续空格 if count: a.append(count) count = '' else: count += i # 处理最后一个单词 if count: a.append(count) return a # 测试特殊场景 print(splitstring(' Hello Python ')) # 输出: ['Hello', 'Python']
内容的提问来源于stack exchange,提问作者Debayan Pal
相关产品推荐
相关产品推荐

