python - 查找字符串中相同相邻字符的数量

标签 python python-3.x for-loop

我有一个字符串:'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/

相关文章:

已安装并识别 python 模块,但无法将其导入我的代码或 Ubuntu 上的 python 2.7.1 解释器

Python:分段函数积分错误: "TypeError: cannot determine truth value of ..."

python - 如何将 datetime.datetime 转换为 GMT 格式 python?

python-3.x - 如何根据指示符序列聚合字符串长度序列

javascript - 在 for 循环初始化中使用 let 时,为什么 let 变量在封闭范围内不可用?

python - 如何在 python 中转义包含单引号、双引号 (',",`) 等所有字符的 Linux 命令?

python - 更正后的 P 值返回为 NaN

Python 3.5 当字符串中有 Enter 时换行

shell - shell 中的 rsync for 循环

python:如果存在于另一个列表中,则比较列表中的值