我想计算每个字符在字符串中重复的次数。除了从 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/