在python中包含字典的函数

在python中包含字典的函数,python,dictionary,Python,Dictionary,这是我的任务: 编写一个名为count_letters的函数,该函数将字符串作为参数,并返回一个字典,该字典列出该字符串中每个字母的数量。字符串可以包含字母以外的字符,但只能计算字母。该字符串甚至可以是空字符串。字母的小写和大写版本应为同一计数的一部分。字典的键应该是大写字母。如果字符串中没有字母,则不会将其添加到字典中。例如,如果字符串为 “AaBb” 然后返回的字典应包含以下键值对: {'A':2,'B':2} 这是我的代码: def count_letters(string): d

这是我的任务: 编写一个名为count_letters的函数,该函数将字符串作为参数,并返回一个字典,该字典列出该字符串中每个字母的数量。字符串可以包含字母以外的字符,但只能计算字母。该字符串甚至可以是空字符串。字母的小写和大写版本应为同一计数的一部分。字典的键应该是大写字母。如果字符串中没有字母,则不会将其添加到字典中。例如,如果字符串为

“AaBb” 然后返回的字典应包含以下键值对:

{'A':2,'B':2}

这是我的代码:

def count_letters(string):
    d = dict()
    for x in string:
        if x not in d:
            d[x]= 0
        else:
            d[x] += 1
    return d

它没有在字符串中返回正确的数字。你知道我做错了什么吗?

作业上说只计算字母,但你在计算所有字母

作业中说字母的大小写版本应该一起计算,但你没有映射大小写

创建新词典条目时,它应以
1
开头以计算当前元素,而不是
0

import char

def count_letters(string):
    d = dict()
    for x in string:
        if char.isalpha(x): # only count letters
            x = x.upper() # Convert lowercase to uppercase equivalent
            if x not in d:
                d[x]= 1
            else:
                d[x] += 1
    return d

您没有说明字母的小写和大写版本应属于同一计数的要求。在您的代码中。也不是要求字符串可以包含字母以外的字符,但只应对字母进行计数。.d[x]=0可能应该是d[x]=1,否则计数将被一个好的捕获关闭,将其添加到答案中。