2012-10-15 153 views
0

我告诉词典 - Python的

写方法频率(一)返回一个字典,对于在每个唯一 值x,地图X到数在a中出现x的次数。

这是我第一次与字典工作,我试着读了,看我怎么会攻击这个问题,但我不知道如何代码吧..

这是什么,我相信我必须这样做。 1.创建一个包含两个值的词典。 [x:y] 2.评估列表。 3.1如果在列表中的值是不在字典中,使x的值:1 3.2如果在列表中的值是在词典,使y值+ 1 4.返回结果

是这你会怎么做这个问题? 我将如何编码第3步?

+1

在现实生活中,你会使用一个'collections.Counter' ...太糟糕了,这是功课... – nneonneo

+0

其惊人的容易创建字典手动 - 如果我在L:如果D.has(i):D [i] ++';等等。 – mikebabcock

+1

除此之外,这远不是有效的Python语法。 – nneonneo

回答

1

,而无需使用collections.Countercollections.defaultdict

def freq(a): 
    D = {} 
    for v in a: 
     D[v] = D.get(v, 0) + 1 
    return D 
+0

谢谢,你必须阅读.get,以前没见过。 – user1730056

0

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

d = {1:2, 3:4} 

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

然后,所有你需要做的就是设定值适当地使用d[x] = y