python - Python 列表推导来填充用作 mutliset 的 dict
问题描述
我需要创建一个多重集来跟踪给定字符串中出现的字符频率。我想使用dict理解来实现这个,但是我尝试了:
mySet = {letter : mySet.get(letter, 0) + 1 for letter in myStr}
似乎没有用......mySet.get(letter, 0)
似乎总是返回 0。有没有另一种方法可以在不诉诸循环的情况下完成这个简单的任务?
解决方案
尝试计数器
from collections import Counter
Counter('Hello World')
这返回
Counter({' ': 1, 'H': 1, 'W': 1, 'd': 1, 'e': 1, 'l': 3, 'o': 2, 'r': 1})
推荐阅读
- lucene - 有没有办法从 Lucene 索引中获取字数?
- php - PHP dns_get_record 错误?
- r - 如何添加具有存储在 data.table 或 tibble 中的线性模型的预测列?
- c# - 在 Windows 更新和 Office 升级后,在 COM 插件中使用 WindowsFormsHost 会引发 ApplicationException
- javascript - 如何连接数字或计算与字符串错误:“预期数字类型”Angular
- doctrine-orm - 学说 2 实体未填充子元素
- javascript - 如何让 AJAX 在 div 顶部加载页面
- bash - AWS EC2 用户数据:使用 sudo 时无法识别命令
- excel - 将新的excel文件保存在单元格中指定的文件目录中
- xaml - 如何使用 WPF 设计复杂的表格