gpt4 book ai didi

Python 列表计数字典

转载 作者:行者123 更新时间:2023-11-30 22:42:27 26 4
gpt4 key购买 nike

我正在寻找一种单行、有效的方法,给定一个列表,输出一个字典,其中键作为列表中的不同值,字典的值作为列表中该键的计数。

例如,

a = [1,1,1,2,2,3,]      ##input
b = {1: 3, 2: 2, 3: 1} ##output

我发现 {i: a.count(i) for i in a}工作正常,但它会进行过多的计算,例如在输入列表 a=[1,1,1] 中,它将用值 [3] 覆盖键 [1] 3 次。

我也可以做一些更手动的事情,如下所示,但我正在寻找更优雅和简单的东西。

b = {}
for i in a:
if i in b:
b[i] += 1
else:
b[a] = 1

最佳答案

使用collections.Counter:

>>> from collections import Counter
>>> a = [1,1,1,2,2,3,]
>>> b = Counter(a)
>>> b
Counter({1: 3, 2: 2, 3: 1})

注意,Counterdict 的子类:

>>> isinstance(b, dict)
True

关于Python 列表计数字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com