繁体   English   中英

python中的迭代问题

[英]Iteration issue in 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

因为您的代码没有任何代码可以从最后一个逗号追加到字符串结尾。

end_pos = source.find(char, start)
output.append(source[start_pos:end_pos])

您需要最后在最后一个逗号和字符串长度之间追加一个范围。

循环结束后添加以下内容。

output.append(source[end_pos+1:];

修改后的代码: http//ideone.com/9Khu4g

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM