【问题标题】:Elegant way of adding a set to a counter in Python在 Python 中将集合添加到计数器的优雅方式
【发布时间】:2017-03-01 11:47:20
【问题描述】:

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

例如,此刻我正在做类似的事情:

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

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

【问题讨论】:

  • Counter() 是什么?从来没有见过这样的事情。
  • 我不确定您期望的最终结果是什么。您使用 set() 已经删除了所有重复的项目。您的最终结果将始终是您的集合中的每个项目之一。

标签: python python-3.x counter


【解决方案1】:

您可以使用update methodupdate 可以接受一个可迭代的(例如一个集合)或一个映射(例如一个字典)。请注意,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})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2018-02-28
    • 2011-05-28
    • 2016-12-11
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多