From: Raymond Hettinger Date: Mon, 29 Jun 2009 18:34:46 +0000 (+0000) Subject: Issue 6370: Performance issue with collections.Counter(). X-Git-Tag: v3.1.1rc1~119 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=77b31ef202359e6f29d261b7dfbb356f36d49123;p=python Issue 6370: Performance issue with collections.Counter(). --- diff --git a/Lib/collections.py b/Lib/collections.py index bd5d3e86f9..f255919f0f 100644 --- a/Lib/collections.py +++ b/Lib/collections.py @@ -421,13 +421,15 @@ class Counter(dict): if iterable is not None: if isinstance(iterable, Mapping): if self: + self_get = self.get for elem, count in iterable.items(): - self[elem] += count + self[elem] = count + self_get(elem, 0) else: dict.update(self, iterable) # fast path when counter is empty else: + self_get = self.get for elem in iterable: - self[elem] += 1 + self[elem] = 1 + self_get(elem, 0) if kwds: self.update(kwds)