字母计数字典

问题描述

| 我的作业问题是编写一个称为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}