Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从iterable中填充计数字典_Python_Python 3.x - Fatal编程技术网

Python 从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

从iterable中填充计数字典的最简单的方法是什么

我知道有
集合。计数器
,我可以使用它

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之地:)。