在 Python 中向计数器添加集合的优雅方式
Elegant way of adding a set to a counter in Python
为集合中的每个元素将计数器递增 1 的最优雅方法是什么?
例如,目前我做了类似的事情:
from collections import Counter
my_counter = Counter()
my_set = set(["a", "b", "c", "d"])
for item in my_set:
my_counter[item] += 1
但我想知道是否可以 'add' 直接将一个集合设置为一个已经存在的计数器?
您可以使用 update
method。 update
可以接受可迭代的(例如集合)或映射(例如字典)。请注意 update
添加到计数中;它不会取代计数:
In [7]: my_counter.update(my_set)
In [8]: my_counter
Out[8]: Counter({'a': 1, 'b': 1, 'c': 1, 'd': 1})
或者,就地添加另一个计数器:
In [18]: my_counter += Counter(my_set)
In [19]: my_counter
Out[19]: Counter({'a': 2, 'b': 2, 'c': 2, 'd': 2})
为集合中的每个元素将计数器递增 1 的最优雅方法是什么?
例如,目前我做了类似的事情:
from collections import Counter
my_counter = Counter()
my_set = set(["a", "b", "c", "d"])
for item in my_set:
my_counter[item] += 1
但我想知道是否可以 'add' 直接将一个集合设置为一个已经存在的计数器?
您可以使用 update
method。 update
可以接受可迭代的(例如集合)或映射(例如字典)。请注意 update
添加到计数中;它不会取代计数:
In [7]: my_counter.update(my_set)
In [8]: my_counter
Out[8]: Counter({'a': 1, 'b': 1, 'c': 1, 'd': 1})
或者,就地添加另一个计数器:
In [18]: my_counter += Counter(my_set)
In [19]: my_counter
Out[19]: Counter({'a': 2, 'b': 2, 'c': 2, 'd': 2})