1

大家我只是想知道如何计算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 中的字符数量?我在想用字典?

4

2 回答 2

5

计算字符串中的字符数如下:

len(my_str)

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

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

这相当于:

字符总数 - 唯一字符的数量。

希望这可以帮助!

于 2013-04-23T02:30:55.680 回答
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})

Counter 基本上会给你一个可迭代的字典,其中每个项目作为键,以及该键作为值出现的次数。

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

>>> [k for k in d if d[k] > 1]
['g', 't']
于 2013-04-23T03:35:38.303 回答