有人能告诉我怎么修吗?在最后一个分隔符之后,代码停止并且没有到达原始字符串的末尾
def split_on_separators(original, separators):
""" (str, str) -> list of str
Return a list of non-empty, non-blank strings from original,
determined by splitting original on any of the separators.
separators is a string of single-character separators.
>>> split_on_separators("Hooray! Finally, we're done.", "!,")
['Hooray', ' Finally', " we're done."]
"""
result = []
newstring=''
for char in original:
if char in separators:
result.append(newstring)
newstring = ""
else:
newstring += char
return result
好吧,这并不完美,因为某些字符不能出现在
separators
中,因为它用于构建正则表达式,但它适用于许多情况,包括问题中的情况。一个更健壮的方法是首先简单地使用re.split
而不是这个函数。你知道吗您需要在循环完成后/返回前向result追加newstring。因为最后一个字符串后面没有分隔符,所以它将永远不会被添加,因为只有遇到分隔符才会导致列表的附加。你知道吗
当输入字符串碰到分隔符时,代码仅将其一部分放入
result
。由于在示例输入的末尾没有分隔符,newstring
中的“we're done”不会附加到result
。要解决这个问题,您必须在for后面添加if语句,以查看newstring
中是否有内容,然后在必要时追加它。你知道吗相关问题 更多 >
编程相关推荐