字母计数字典
我的作业是写一个叫做 LetterCount() 的 Python 函数,这个函数需要接收一个字符串作为输入,然后返回一个字母计数的字典。不过,我的代码里把空格和逗号也算进字典里了,我不想要这些。你能帮我一下吗?我该怎么把列表里的空格去掉呢?这是我的代码:
import string
def LetterCount(str):
str= str.lower().strip()
str = str.strip(string.punctuation)
list1=list(str)
lcDict= {}
for l in list1:
if l in lcDict:
lcDict[l] +=1
else:
lcDict[l]= 1
print lcDict
LetterCount("Abracadabra, Monsignor")
10 个回答
4
扩展 python - 字母计数字典:
from collections import Counter
def LetterCount(text):
return Counter(c for c in text.lower() if c.isalpha())
6
对于字母计数,最好的方法是使用字典。
s = "string is an immutable object"
def letter_count(s):
d = {}
for i in s:
d[i] = d.get(i,0)+1
return 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}
3
你还可以检查一下 l 是否是一个字母字符(if l.isalpha()
)
举个例子:
import string
def LetterCount(str):
str= str.lower().strip()
str = str.strip(string.punctuation)
list1=list(str)
lcDict= {}
for l in list1:
if l.isalpha():
if l in lcDict:
lcDict[l] +=1
else:
lcDict[l]= 1
print lcDict
LetterCount("Abracadabra, Monsignor")