python - 如何编写一个 Python 函数来计算一个字母在字符串中出现的次数?
问题描述
下面的代码有两个问题
S = "acbcbba"
def count_letters(text):
result = {}
for letter in text:
if letter.isalpha():
if letter.lower() in result.keys():
result[letter.lower()] += 1
else:
result[letter.lower()] = 1
print(result)
return(result)
count_letters(S)
首先,我不知道如何修改它,所以它只返回 1 个字典,而不是与字符串中的字母一样多的字典。
其次,然后我需要能够访问每个键以确定与之关联的值是否为奇数并返回具有与其关联的奇数值的键?
有谁知道如何做到这一点?
解决方案
它不是返回多个字典,而是返回1 个字典,并打印其他字典。只需删除您的print
声明。
关于查询具有奇数计数的项目,您可以使用字典的列表理解items()
并通过它们的值(即计数)为奇数过滤掉。
>>> d = count_letters(S)
>>> d
{'a': 2, 'c': 2, 'b': 3}
>>> [key for key, value in d.items() if value % 2 == 1]
['b']
如果你想要一个键值对列表,那么你可以做类似的事情
>>> [(key, value) for key, value in d.items() if value % 2 ==1 ]
[('b', 3)]
推荐阅读
- java - Android Room 数据库中 id 字段的名称字段约定
- laravel - 带有 Laravel Lighthouse 的 GraphQL @belogsTo 相同的模型
- reactjs - 在反应测试中无法读取未定义错误的getstate属性
- c# - 如何在预制孩子上设置重心?
- javascript - React + Gatsby 静态查询 + GraphQL 中的条件渲染
- php - 如何从 CUrl 下载或导出 PHP 格式的 PDF 并输出到 VUE JS?
- c# - 基于两个用户输入的数字的第 n 个根
- android - 如何在没有 Networkinfo(Java) 的情况下检查互联网
- reactjs - 打字稿反应redux,类型{}上不存在属性
- python-3.x - 按 ID 链接两个文件,然后通过在 Python 中使用 DataFrames 引用另一个文件来从一个文件中删除数据值