我的計算機科學任務需要我用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