如何解决字母计数字典
| 我的作业问题是编写一个称为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\")
解决方法
您还可以检查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\")
,扩展python-字母计数字典:
from collections import Counter
def LetterCount(text):
return Counter(c for c in text.lower() if c.isalpha())
,在“ 4”分支中分配计数之前,应检查“ 5”是否为字母。如果是字母,则仅分配计数。
,从python doc(注意开头和结尾的方面):
string.strip(s [,chars])返回一个副本
带前导和的字符串
尾随字符已删除。如果是字符
省略或无,空格
字符被删除。如果给和
不是None,字符必须是字符串;的
字符串中的字符将是
从两端剥去
调用此方法的字符串。
在版本2.2.3中更改:字符
参数已添加。字符
参数不能更早地传递
2.2版本。
您应该看看str.replace()和DefaultDict :)
,您想要str.translate
而不是str.strip
。
,另一种选择是使用filter()
从字符串中删除所有非字母字符:
filter(str.isalpha,\"Abracadabra,Monsignor\")
\'AbracadabraMonsignor\'
(请小心在代码中使用它-您用相同名称的变量将内置str
遮蔽了。切勿调用变量str
。)
,我不想为您做家庭作业,因为我认为这不会对您有帮助,但我会尝试在正确的方向上帮助您,尝试一下:
alphabet = map(chr,range(97,123))
要么
alphabet2 = list(string.lowercase)
alphabet
和alphabet2
将在列表中包含字母表中的所有小写字母。
感谢eumiro的剩余部分!
,对于字母数,最好的方法是使用字典。
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}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。