我的计算机科学任务需要我用Python重新编写split()
字符串方法,其中y
是分隔符,而x
是用户输入的字符串。Python中的Split Split()函数返回一个不正确的列表
迄今为止我所做的代码如下所示:
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
。
任何人都可以向我解释为什么会发生这种情况,我该如何解决这个问题?
在for循环之后,你需要检查'list_two'是否仍然包含任何东西。如果是,那么追加它。 – 2014-10-20 19:17:38
没有人可以向你解释这个以及交互式可视化器。像[这一个](http://bit.ly/1vDz35J)。当你逐步了解它时,很明显为什么每个人都会出错。 (你也可以使用内置的调试器,或者添加一些'print'调用,但是当你真的需要看到每一个步骤时,可视化器会更好,并且不会因为太多而变得不堪重负) – abarnert 2014-10-20 19:18:35