mnordhoff at mattnordhoff.com
Thu Oct 9 09:40:18 CEST 2008
Chris Rebert wrote:
> I personally would probably do:
> from collections import defaultdict
> label2sum = defaultdict(lambda: 0)
FWIW, you can just use:
label2sum = defaultdict(int)
You don't need a lambda.
> for r in rec:
> for key, value in r.iteritems():
> label2sum[key] += value
> ratio = label2sum["F1"] / label2sum["F2"]
> This iterates through each 'r' only once, and (imho) is pretty
> readable provided you know how defaultdicts work. Not everything has
> to unnecessarily be made a one-liner. Coding is about readability
> first, optimization second. And optimized code should not be
> abbreviated, which would make it even harder to understand.
> I probably would have gone with your second solution if performance
> was no object.
More information about the Python-list