如何计算Str中的重复字符数

时间:2013-04-23 02:20:38

标签: python string python-3.x

每个人我只是想知道如何计算str中的ch重复,我写的函数是:

def repeat(s):
    '''
    '''
    count = 0 
    L = []

    for i in range(len(s)):
        count = 0
        if s[i] in s: 
         count = count + 1
        else:
             count = count

    L.append(count)
    return L

但是,如果字母相同,列表将重复。是否有更好的方法来计算str中的字符数量?我在考虑使用字典?

2 个答案:

答案 0 :(得分:5)

计算字符串中的字符数是这样的:

len(my_str)

因此,如果你想计算重复字符的数量,那就是

len(my_str) - len(set(my_str))

这相当于:

  

总字符数 - 唯一字符数。

希望这有帮助!

答案 1 :(得分:0)

目前这个问题有点不清楚,但是如果你试图计算每个字符出现在字符串中的次数,这将有效:

>>> from collections import Counter
>>> char_counts = Counter(s)

示例:

>>> d = Counter("Chris Doggett")
>>> for k, v in d.iteritems():
...    print k, v
  1
C 1
e 1
D 1
g 2
i 1
h 1
o 1
s 1
r 1
t 2

>>> print d
Counter({'g': 2, 't': 2, ' ': 1, 'C': 1, 'e': 1, 'D': 1, 'i': 1, 'h': 1, 'o': 1, 's': 1, 'r': 1})

计数器基本上会为您提供一个字典,其中包含每个项目作为键的迭代,以及该键显示为值的次数。

如果您只想要多次显示的字符列表,那么这是一个简单的列表理解:

>>> [k for k in d if d[k] > 1]
['g', 't']