0

我被告知

编写一个方法 freq(a),它返回一个字典,对于 a 中的每个唯一值 x,将 x 映射到 a 中 x 的出现次数。

这是我第一次使用字典,我尝试阅读以了解如何解决这个问题,但我不知道如何编写它..

这就是我认为我必须做的事情。 1. 创建一个包含两个值的字典。[x:y] 2. 评估列表。3.1 如果列表中的值不在字典中,则取值为 x:1 3.2 如果列表中的值在字典中,则取值为 y+1 4. 返回结果

这是你将如何解决这个问题吗?我将如何编码第 3 步?

4

2 回答 2

1

不使用collections.Counteror collections.defaultdict

def freq(a):
    D = {}
    for v in a:
        D[v] = D.get(v, 0) + 1
    return D
于 2012-10-15T05:04:57.090 回答
0

你几乎拥有它。要检查一个值是否在字典中,只需使用in

d = {1:2, 3:4}

print 1 in d # ==> True
print 2 in d # ==> False

然后,您所要做的就是使用适当地设置值d[x] = y

于 2012-10-15T05:04:11.507 回答