在Python中将集合添加到计数器的优雅方式

kyr*_*nia 4 counter python-3.x

对于集合中的每个元素,将计数器加1的最优雅方法是什么?

例如,目前我正在做类似的事情:

 from collections import Counter
 my_counter = Counter()
 my_set = set(["a", "b", "c", "d"])
 for item in my_set:
     my_counter [item ] += 1
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否可以直接将一个集合“添加”到一个已经存在的计数器中?

unu*_*tbu 7

您可以使用update方法update可以接受可迭代(例如,集合)或映射(例如,字典)。注意,这update增加了计数;它不会取代计数:

In [7]: my_counter.update(my_set)

In [8]: my_counter
Out[8]: Counter({'a': 1, 'b': 1, 'c': 1, 'd': 1})
Run Code Online (Sandbox Code Playgroud)

或者,就地添加另一个Counter:

In [18]: my_counter += Counter(my_set)

In [19]: my_counter
Out[19]: Counter({'a': 2, 'b': 2, 'c': 2, 'd': 2})
Run Code Online (Sandbox Code Playgroud)