Like dict.update() but add counts instead of replacing them.

		Source can be an iterable, a dictionary, or another Counter instance.

		>>> c = Counter('which')
		>>> c.update('witch')		   # add elements from another iterable
		>>> d = Counter('watch')
		>>> c.update(d)				 # add elements from another counter
		>>> c['h']					  # four 'h' in which, witch, and watch
		4

def update(self, iterable=None, **kwds):
		'''Like dict.update() but add counts instead of replacing them.

		Source can be an iterable, a dictionary, or another Counter instance.

		>>> c = Counter('which')
		>>> c.update('witch')		   # add elements from another iterable
		>>> d = Counter('watch')
		>>> c.update(d)				 # add elements from another counter
		>>> c['h']					  # four 'h' in which, witch, and watch
		4

		'''
		if iterable is not None:
			if hasattr(iterable, 'iteritems'):
				if self:
					self_get = self.get
					try:
						iteritems = self.iteritems()
					except AttributeError:
						iteritems = iter(self)
					for elem, count in iteritems:
						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] = self_get(elem, 0) + 1
		if kwds:
			self.update(kwds)