我的计算机科学作业要求我用Python重新制作split()
字符串方法,其中y
是分隔符,x
是用户输入的字符串。
我到目前为止所做的代码如下所示:
def split(x, y = " "):
list_one = []
list_two = []
for char in x:
if char not in y:
list_two.append(char)
else:
list_one.append(''.join(list_two))
list_two = []
return list_one
但是,我遇到了这个函数给出的输出问题。以下是两个示例输出来说明:
>>> split("babab", "a")
['b', 'b']
>>> split("9*r10*r11", "*r")
['9', '', '10', '']
问题?
在split("babab", "a")
中,返回的'b'
完全没有最后一个list_one
,我不知道为什么会这样。
在split(9*r10*r11", "*r")
中,返回的list_one
中有空单引号;再一次,我不知道为什么他们在那里。此外,1中发生的问题也发生在此处,列表中的数字11
完全丢失。
任何人都可以向我解释为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:1)
你的两个错误是:
list_two
;和len(y) > 1
时无法正常工作 - 您应该检查字符串的开头,长度为y
。鉴于这是你的作业,我认为你应该从那里开始。