Python 从iterable中填充计数字典
从iterable中填充计数字典的最简单的方法是什么 我知道有Python 从iterable中填充计数字典,python,python-3.x,Python,Python 3.x,从iterable中填充计数字典的最简单的方法是什么 我知道有集合。计数器,我可以使用它 counter = Counter(iterable) 然后使用计数器,就像一本字典将iterable的不同项作为键,并将它们的计数作为值一样 但是,一定有一种类似于Python的方法,可以用常规的dict来做同样的事情,这种方法比 count = {} for item in iterable: if item not in count: count[item] = 1
集合。计数器
,我可以使用它
counter = Counter(iterable)
然后使用计数器
,就像一本字典将iterable
的不同项作为键,并将它们的计数作为值一样
但是,一定有一种类似于Python的方法,可以用常规的dict
来做同样的事情,这种方法比
count = {}
for item in iterable:
if item not in count:
count[item] = 1
else:
count[item] += 1
这是什么?一个简单的方法:
count = {}
for item in iterable:
count[item] = count.get(item, 0) + 1
但一般来说,您应该只使用
collections.Counter
。您使用的计数器与“dict”不同,它是一个dict。您可以使用.get
和0
默认值,但通常只使用计数器。这正是它的用途。使用collections.Counter
是最具python风格的方式。也许不是最有效率的,我对此表示怀疑,但它肯定是最具Python风格的。@Kasr–mvd为什么不是最有效率的?@juanpa.arrivillaga,因为我不完全了解集合的内部实现。Counter
,还因为它是一个有很多隐藏复活节彩蛋的宏伟Python之地:)。