首页 > 解决方案 > python中包含字典的函数

问题描述

这是我的任务:编写一个名为 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

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

标签: pythondictionary

解决方案


作业说只应计算字母,但您正在计算所有内容。

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

当您创建一个新的字典条目时,它应该从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

推荐阅读