字母计数词典

新手上路,请多包涵

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

原文由 Ivan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 475
2 个回答

您还可以检查 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")

原文由 pconcepcion 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于字母计数,最好的方法是使用字典。

 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}

原文由 Dry_accountant_09 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题