python - 字母计数字典

时间:2011-04-09 16:57:57

标签: python

编写一个名为LetterCount()的Python函数,它将一个字符串作为参数并返回一个字母计数字典。

该行:

print LetterCount("Abracadabra, Monsignor")

应该产生输出:

{'a': 5, 'c': 1, 'b': 2, 'd': 1, 'g': 1, 'i': 1, 'm': 1, 'o': 2, 'n': 2, 's': 1, 'r': 3}

我试过了:

import collections
c = collections.Counter('Abracadabra, Monsignor')
print c
print list(c.elements())

我得到的答案看起来像这样

{'a': 4, 'r': 3, 'b': 2, 'o': 2, 'n': 2, 'A': 1, 'c: 1, 'd': 1, 'g': 1, ' ':1, 'i':1, 'M':1 ',':1's': 1, }
['A', 'a','a','a','a','c','b','b','d','g', and so on 

现在可以使用此代码了 导入集合 c = collections.Counter('Abracadabra,Monsignor'.lower())

打印c 我明白了  {'a':5,'r':3,'b':2,'o':2,'n':2,'c:1,'d':1,'g':1,'' :1,'i':1,',':1'':1,}

但答案应该是这个  {'a':5,'c':1,'b':2,'d':1,'g':1,'i':1,'m':1,'o':2,' n':2,'s':1,'r':3}

2 个答案:

答案 0 :(得分:4)

你很亲密。请注意,在任务描述中,不考虑字母的大小写。他们想要{'a': 5}{'a': 4, 'A': 1}

所以你必须先将字符串转换为小写(I'm sure you will find out how)。

答案 1 :(得分:0)

使用字典计算字母数:

s = "string is an immutable object"
d = {}
for i in s:
    d[i] = d.get(i,0)+1

print d

输出:

{'a': 2, ' ': 4, 'c': 1, 'b': 2, 'e': 2, 'g': 1, 'i': 3, 'j': 1, 'm': 2, 'l': 1, 'o': 1, 'n': 2, 's': 2, 'r': 1, 'u': 1, 't': 3}