using zip() and dictionaries
Scott David Daniels
Scott.Daniels at Acm.Org
Thu Apr 30 14:36:00 EDT 2009
Sneaky Wombat wrote:
> quick update,
>
> #change this line:
> for (k,v) in zip(header,[[]]*len(header)):
> #to this line:
> for (k,v) in zip(header,[[],[],[],[]]):
>
> and it works as expected. Something about the [[]]*len(header) is
> causing the weird behavior. I'm probably using it wrong, but if
> anyone can explain why that would happen, i'd appreciate it.
I'll bet the output below explains it:
header = 'a', 'b', 'c', 'd'
print [id(x) for x in [[]] * len(header)]
print [id(x) for x in [[],[],[],[]]]
and (what I think you want):
print [id(x) for x in [[] for x in header]]
So, I think you should use:
columnMap = dict(zip(header, ([] for x in header)))
--Scott David Daniels
Scott.Daniels at Acm.Org
More information about the Python-list
mailing list