Elegant way of adding a set to a counter in Python
counter, python, python-3.x
Solution
You could use the `update` method. `update` can accept an iterable (e.g. a set) or a mapping (e.g. a dict). Note that `update` adds to the count; it does not replace the count:
In [7]: my_counter.update(my_set)
In [8]: my_counter
Out[8]: Counter({'a': 1, 'b': 1, 'c': 1, 'd': 1})
Or, add another Counter in-place:
In [18]: my_counter += Counter(my_set)
In [19]: my_counter
Out[19]: Counter({'a': 2, 'b': 2, 'c': 2, 'd': 2})
Problem
What is the most elegant way of incrementing a counter by 1 for each element in a set? For example at the moment i do something like: ``` from collections import Counter my_counter = Counter() my_set = set(["a", "b", "c", "d"]) for item in my_set: my_counter[item] += 1 ``` But i was wondering if it possible to 'add' a set to a already existing counter directly?