2011-04-09 62 views
0

编写一个名为LetterCount()的Python函数,它接受一个字符串作为参数并返回一个字母计数的字典。python - Letter Count Dict

行:

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( '胡言乱语,Monsignor'.lower())

打印Ç 正在此 {' A':5, 'R': 3,'b':2,'o':2,'n':2,'c:1,'d':1,'g':1,'':1,'i':1,', ':1's':1,}

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

+0

看起来不错?有什么问题? – 2011-04-09 17:04:23

+0

不能得到它的小写字母也是最后一行以A开头并不需要回答 – Sarah 2011-04-09 17:22:22

+0

@Sarah:Google呢怎么样:https://encrypted.google.com/search?q=python+string+lowercase?如果你不需要第二行,那么不要打印它。 – 2011-04-09 17:23:46

回答

4

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

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

+0

@Sarah:温斯顿在评论中说,字典在Python中是无序的。你不能影响它的打印方式。你的答案可能是正确的。 – 2011-04-09 18:34:03