From: Raymond Hettinger Date: Thu, 22 Jan 2009 09:05:43 +0000 (+0000) Subject: Update comments and add an optimized path for Counter.update(). X-Git-Tag: v2.7a1~2223 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1bc1c8ac766e62116bd9d677712c59d681e44c0e;p=python Update comments and add an optimized path for Counter.update(). --- diff --git a/Lib/collections.py b/Lib/collections.py index eb13f4d2fd..effae7dd8d 100644 --- a/Lib/collections.py +++ b/Lib/collections.py @@ -253,8 +253,11 @@ class Counter(dict): if iterable is not None: if isinstance(iterable, Mapping): - for elem, count in iterable.iteritems(): - self[elem] += count + if self: + for elem, count in iterable.iteritems(): + self[elem] += count + else: + dict.update(self, iterable) # fast path when counter is empty else: for elem in iterable: self[elem] += 1 @@ -280,7 +283,6 @@ class Counter(dict): # Knuth TAOCP Volume II section 4.6.3 exercise 19 # and at http://en.wikipedia.org/wiki/Multiset # - # Results are undefined when inputs contain negative counts. # Outputs guaranteed to only include positive counts. # # To strip negative and zero counts, add-in an empty counter: