'Inplace intersection is the minimum of corresponding counts.
>>> c = Counter(\'abbb\')
>>> c &= Counter(\'bcc\')
>>> c
Counter({\'b\': 1})'

def __iand__(self, other):

    for (elem, count) in self.items():
        other_count = other[elem]
        if (other_count < count):
            self[elem] = other_count
    return self._keep_positive()
