我有一个字符串:'AAAATTT'
我想编写一个程序,每次两个值相同时都会进行计数。 因此,在“AAAAATTT”中,它会给出以下计数:
AA:4 TT:2
最佳答案
您可以使用collections.defaultdict
来实现此目的。这是一个 O(n) 复杂度解决方案,它循环相邻字母并根据条件构建字典。
您的输出将是一个字典,其中键为重复字母,值作为计数。
使用itertools.islice
是为了避免为zip
的第二个参数构建新列表。
from collections import defaultdict
from itertools import islice
x = 'AAAAATTT'
d = defaultdict(int)
for i, j in zip(x, islice(x, 1, None)):
if i == j:
d[i+j] += 1
结果:
print(d)
defaultdict(<class 'int'>, {'AA': 4, 'TT': 2}
关于python - 查找字符串中相同相邻字符的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49836956/