从可迭代对象填充计数字典

Wal*_*oss 2 python python-3.x

从可迭代对象填充计数字典的最pythonic 方法是什么?

我知道有collections.Counter,我可以做

counter = Counter(iterable)
Run Code Online (Sandbox Code Playgroud)

然后counter就像字典一样使用不同的项目作为键,iterable并将它们的计数作为值。

但是必须有一种 pythonic 的方式来做同样的事情,dict比普通的更紧凑

count = {}
for item in iterable:
    if item not in count:
        count[item] = 1
    else:
        count[item] += 1
Run Code Online (Sandbox Code Playgroud)

它是什么?

jua*_*aga 5

一种简单的方法:

count = {}
for item in iterable:
    count[item] = count.get(item, 0) + 1
Run Code Online (Sandbox Code Playgroud)

但通常,您应该只使用collections.Counter. 你不使用Counter“就像”一个字典,它是一个字典。