python - 在Python中计算字符串中的重复字符

标签 python

我想计算每个字符在字符串中重复的次数。除了从 A-Z 比较字符串的每个字符之外,还有什么特别的方法可以做到这一点 并增加一个计数器?

更新(引用 Anthony's answer ):到目前为止,无论您提出什么建议,我都必须写 26 次。有没有更简单的方法?

最佳答案

import collections

d = collections.defaultdict(int)
for c in thestring:
    d[c] += 1

一个 collections.defaultdict 就像一个 dict (实际上是它的子类),但是当一个条目被寻找但没有找到时,而不是报告它没有它,它通过调用提供的 0 参数可调用来创建并插入它。最流行的是 defaultdict(int),用于计数(或等效地,用于制作多集 AKA 包数据结构)和 defaultdict(list),它永远不会需要使用 .setdefault(akey, []).append(avalue) 和类似的尴尬成语。

所以一旦你完成了这个 d 是一个类似字典的容器,将每个字符映射到它出现的次数,当然你可以用任何你喜欢的方式发出它。例如,最受欢迎的角色优先:

for c in sorted(d, key=d.get, reverse=True):
  print '%s %6d' % (c, d[c])

关于python - 在Python中计算字符串中的重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/991350/

相关文章:

java - 霍夫曼将两个字符编码为一个

python - 增加大小/参数的递归循环(哈密尔顿路径?)Python

python - 如何在时域计算基音基频f(0))?

python - 如何使用 Python 将文本文件中的 Unicode 字符替换为土耳其语字符

python - 修改for循环中的增量值

python - 对多列进行条件选择 - Python

python - 将一个 pandas 系列除以另一个系列并忽略索引

python - 使用 os.environ 的 pytest 模块 - 如何正确测试它?

python - 如何在 Windows 10 中启用 VT100 终端仿真?

python - pandas 中高效的列内操作