这是我的任务: 编写一个名为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
它没有在字符串中返回正确的数字。知道我在做什么错吗?
答案 0 :(得分:0)
作业表明只应计算字母,但您要计算所有内容。
作业指出,字母的大小写应该一并计算,但是您不映射大小写。
创建新的词典条目时,它应以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