Partially flattening a list

Posted by alj on Stack Overflow See other posts from Stack Overflow or by alj
Published on 2010-05-29T13:44:50Z Indexed on 2010/05/29 14:02 UTC
Read the original article Hit count: 168

Filed under:

This is probably a really silly question but, given the example code at the bottom, how would I get a single list that retain the tuples?

(I've looked at the itertools but it flattens everything)

What I currently get is:

('id', 20, 'integer')

('companyname', 50, 'text')

[('focus', 30, 'text'), ('fiesta', 30, 'text'), ('mondeo', 30, 'text'), ('puma', 30, 'text')]

('contact', 50, 'text')

('email', 50, 'text')

what I would like is a single level list like:

('id', 20, 'integer')

('companyname', 50, 'text')

('focus', 30, 'text')

('fiesta', 30, 'text')

('mondeo', 30, 'text')

('puma', 30, 'text')

('contact', 50, 'text')

('email', 50, 'text')

def getproducts():
    temp_list=[]
    product_list=['focus','fiesta','mondeo','puma'] #usually this would come from a db
    for p in product_list:
        temp_list.append((p,30,'text'))
    return temp_list

def createlist():    
    column_title_list = (
                                    ("id",20,"integer"),
                                    ("companyname",50,"text"),
                                    getproducts(), 
                                    ("contact",50,"text"),
                                    ("email",50,"text"),
                                ) 
    return column_title_list

for item in createlist():
    print item

Thanks

ALJ

© Stack Overflow or respective owner

Related posts about python