01110100
01110100

Reputation: 833

Iteration issue in python

[Code below question]

The idea is to expand on python's built-in split() function. This function takes two strings, one that needs to be split, and the second is what characters to omit and split at in the first string. This code has worked, but for some reason with this input, it will not iterate anything past the last comma. In other words, no matter the input in this format, it won't append anything past the final comma. I can't figure out why. I have gone line through line of this code and I can't find out where I am losing it.

Why is my code not iterating through any characters past the last comma?

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

Upvotes: 1

Views: 98

Answers (1)

Manav Kataria
Manav Kataria

Reputation: 5310

Because your code does not have any code to append from the last comma till the end of string.

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

Your need to finally append a range between last comma and string length.

Add the following after the loop ends.

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

Modified code: http://ideone.com/9Khu4g

Upvotes: 4

Related Questions