convert string containing list to list (or tuple) type

Poppy znfmail-pythonlang at yahoo.com
Fri May 30 09:58:16 EDT 2008


I'm reading from a database a column that has a list of codes (comma 
seperated). When I read in the list I have a single value, see code sample 
below values for a, b, and c. These represent possible values in my 
database. I need to loop through each value so I can expand my data from 
this compressed view.

My code below works and creates my desired output but I believe there must 
be a better way this is very messy. My messy function that I'd like to 
replace is lst_codes(codes). Any alternative suggestions?

this is what I begin with
a = ',P,'
b = ',I,G,AQ,ET,K,BF,'
c = ',DZ,'
this is what I want (lists or tuples are fine)
['P']
['I', 'G', 'AQ', 'ET', 'K', 'BF']
['DZ']


def lst_codes(codes):
    """ turn a string of comma seperated codes into a real list object """
    i = 0
    lstD = []
    while i < len(codes):
        a = codes[i]
        b = ","
        if (i + 1) < len(codes):
            b = codes[i + 1]
            i = i + 1
        else:
            b = ","

        if b <> ",":
            lstD.append(a + b)
            i = i + 2
        else:
            lstD.append(a)
            i = i + 1
    return lstD


a = ',P,'
b = ',I,G,AQ,ET,K,BF,'
c = ',DZ,'

for ea in (a,b,c):
    print lst_codes(ea.strip(","))





More information about the Python-list mailing list