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. > > Cheers, > Chris -- -- http://mail.python.org/mailman/listinfo/python-list