每个人我只是想知道如何计算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中的字符数量?我在考虑使用字典?
答案 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']