Red Forks wrote:
You mean 'get' method should not alter the dict, does 'dict[key]' should
not alter the dict either?
d = defaultdict(set)
assert len(d) == 0
print d[1]
assert len(d) == 1
auto insert value to dict, when value is not in dict, is what
defaultdict try to do.
That's the behaviour which makes defaultdict so useful. Compare using
defaultdict:
d = defaultdict(int)
and then:
d["foo"] += 1
to using dict:
d = {}
and then:
try:
d["foo"] += 1
except KeyError:
d["foo"] = 1
or:
d["foo"] = d.get("foo", 0) + 1
--
http://mail.python.org/mailman/listinfo/python-list