]> granicus.if.org Git - python/commitdiff
Issue 6370: Performance issue with collections.Counter().
authorRaymond Hettinger <python@rcn.com>
Mon, 29 Jun 2009 19:10:29 +0000 (19:10 +0000)
committerRaymond Hettinger <python@rcn.com>
Mon, 29 Jun 2009 19:10:29 +0000 (19:10 +0000)
Lib/collections.py

index 1e807af81dc5eaa5f39c53fe6339506bdccdb8bc..abf6f8927d9c4015fe04281243505f270a8f05f2 100644 (file)
@@ -418,13 +418,15 @@ class Counter(dict):
         if iterable is not None:
             if isinstance(iterable, Mapping):
                 if self:
+                    self_get = self.get
                     for elem, count in iterable.iteritems():
-                        self[elem] += count
+                        self[elem] = self_get(elem, 0) + count
                 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] = self_get(elem, 0) + 1
         if kwds:
             self.update(kwds)