python - 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
它没有在字符串中返回正确的数字。知道我做错了什么吗?
解决方案
作业说只应计算字母,但您正在计算所有内容。
作业说字母的大写和小写版本应该一起计算,但你没有映射大小写。
当您创建一个新的字典条目时,它应该从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
推荐阅读
- postgresql - 如何在postgresql的join中的select语句之一中使用列值
- android - 从子片段中获取 viewPager2 的引用
- python - 如何在不初始化 CUDA 的情况下检查 Torch gpu 兼容性?
- augmented-reality - 我的设备vivo v20 Dosent支持AR核心
- typo3 - 在根模板中启用 Powermail Spamshield
- linux - 用于连接 SSH Ubuntu 18.04 的多个密钥。如何使用?
- c# - 单击按钮,然后 Datatrigger 不再工作
- ios - 通过推送通知打开时混合应用程序休眠
- database - 在 ASP.NET Core 中的控制器的一个视图上的选择标记上显示 2 个不同的视图
- amazon-cognito - 为什么在启用 SRP 时 Amplify for AWS Cognito 会以纯文本形式发送新密码?