Update comments and add an optimized path for Counter.update().
diff --git a/Lib/collections.py b/Lib/collections.py
index 232c772..6831cf1 100644
--- a/Lib/collections.py
+++ b/Lib/collections.py
@@ -255,8 +255,11 @@
if iterable is not None:
if isinstance(iterable, Mapping):
- for elem, count in iterable.items():
- self[elem] += count
+ if self:
+ for elem, count in iterable.items():
+ self[elem] += count
+ else:
+ dict.update(self, iterable) # fast path when counter is empty
else:
for elem in iterable:
self[elem] += 1
@@ -282,7 +285,6 @@
# 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: