python中的迭代问题

python中的迭代问题,python,for-loop,split,iteration,Python,For Loop,Split,Iteration,[问题下方代码] 其思想是扩展python的内置split()函数。此函数接受两个字符串,一个需要拆分,第二个是在第一个字符串中省略和拆分的字符。这段代码已经运行了,但是由于某些原因,对于这个输入,它不会迭代任何超过最后一个逗号的内容。换句话说,无论这种格式的输入是什么,它都不会在最后一个逗号之后追加任何内容。我不明白为什么。我已经过了这一行代码,我找不出我在哪里丢失了它 为什么我的代码没有遍历任何超过最后一个逗号的字符 def split_string(source,splitlist):

[问题下方代码]

其思想是扩展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
def split_字符串(源,拆分列表):
##变数##
输出=[]
开始,开始位置,跟踪器=0,0,0
##迭代##
对于源中的字符:
start=source.find(char,start)
如果拆分列表中有字符:
跟踪器+=1

如果tracker,因为您的代码从最后一个逗号到字符串末尾没有任何代码可追加

end_pos = source.find(char, start)
output.append(source[start_pos:end_pos])
您需要最后附加一个介于最后一个逗号和字符串长度之间的范围

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

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

修改代码:

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

end_pos = source.find(char, start)
output.append(source[start_pos:end_pos])
您需要最后附加一个介于最后一个逗号和字符串长度之间的范围

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

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

修改代码:

几乎是死路一条。不管怎样,你都把我引向了正确的方向。您放置的补丁
output.append(source[end\u pos+1])
适用于此特定输入,但不适用于end\u pos实际上是字符串中最后一个位置的其他输入。尽管如此,您还是指出了我程序中的漏洞,即如何处理结束位置不是字符串的最后一个位置<代码>如果源[结束位置]!=source[-1]:output.append(source[end\u pos+1:])
修复了它。谢谢是的,我想让你自己做剩下的:)几乎死了。不管怎样,你都把我引向了正确的方向。您放置的补丁
output.append(source[end\u pos+1])
适用于此特定输入,但不适用于end\u pos实际上是字符串中最后一个位置的其他输入。尽管如此,您还是指出了我程序中的漏洞,即如何处理结束位置不是字符串的最后一个位置<代码>如果源[结束位置]!=source[-1]:output.append(source[end\u pos+1:])修复了它。谢谢是的,我想让你自己做剩下的:)