编写一个名为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}
答案 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}