1
[代碼如下問題]python中的迭代問題
這個想法是擴展python的內置split()函數。這個函數需要兩個字符串,一個需要分割,另一個是在第一個字符串中省略和分割的字符。這段代碼已經工作,但由於某種原因,這個輸入不會迭代任何超過最後一個逗號的東西。換句話說,不管這種格式的輸入,它都不會追加任何超過最終逗號的東西。我無法弄清楚爲什麼。我已經排隊通過這段代碼,我找不到我失去它的地方。
爲什麼我的代碼不能遍歷最後一個逗號之後的任何字符?
def split_string(source,splitlist):
## Variables ##
output = []
start, start_pos , tracker = 0 , 0 , 0
## Iterations ##
for char in source:
start = source.find(char,start)
if char in splitlist:
tracker += 1
if tracker <= 1:
end_pos = source.find(char, start)
output.append(source[start_pos:end_pos])
start_pos = end_pos + 1
else:
start_pos+=1
else:
tracker = 0
return output
out = split_string("First Name,Last Name,Street Address,City,State,Zip Code",",")
print out
上幾乎死了。無論如何,你引導我走向正確的方向。你把 'output.append(source [end_pos + 1])' 這個修正用於這個特定的輸入,但不適用於其他end_pos實際上是字符串中最後一個位置的其他輸入。儘管如此,你在我的程序中指出了一個漏洞,那就是如何處理end_pos不是字符串的最後位置。 'if source [end_pos]!= source [-1]: output.append(source [end_pos + 1:])' 修復了它。謝謝! – 01110100
是的,我想讓你自己休息一下:) –