字母计数字典

4 投票
10 回答
30986 浏览
提问于 2025-04-16 15:44

我的作业是写一个叫做 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")

撰写回答