I'm really confused by what is happening here. If I use zip(), I can't update individual dictionary elements like I usually do. It updates all of the dictionary elements. It's hard to explain, so here is some output from an interactive session:
In [52]: header=['a','b','c','d'] In [53]: columnMap={} In [54]: for (k,v) in zip(header,[[]]*len(header)): ....: #print "%s,%s"%(k,v) ....: columnMap[k] = v ....: In [55]: columnMap Out[55]: {'a': [], 'b': [], 'c': [], 'd': []} In [56]: columnMap['a'].append('something') In [57]: columnMap Out[57]: {'a': ['something'], 'b': ['something'], 'c': ['something'], 'd': ['something']} Why does ['something'] get attached to all columnMap elements instead of just element 'a'? In [58]: columnMap={'a': [], 'b': [], 'c': [], 'd': []} In [59]: columnMap['a'].append('something') In [60]: columnMap Out[60]: {'a': ['something'], 'b': [], 'c': [], 'd': []} creating the dictionary without using zip, it works as normal. -- http://mail.python.org/mailman/listinfo/python-list