统计 Python 中字符重复次数

2024-09-30 14:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python程序,我需要一些方法来计算一个X或一段Xs在字符串中出现的次数。例如,如果输入是aaaXXXbbbXXXcccXdddXXXXXeXf,那么输出应该是5,因为字符串中有5个X的延伸。在

在Perl中,我可以按如下方式完成此操作。在

my $count =()= $str =~ m/X+/g;

我熟悉Python中的re.search命令,但不知道如何计算结果的数量,我不确定这是否是解决Python问题的最有效方法。在

我最优先考虑的是可读性/清晰度;效率是次要的。在


Tags: 方法字符串命令程序researchmycount
2条回答

这应该是有效的:

prev = None
count = 0
for letter in string:
    if letter == 'X' and prev != 'X':
        count += 1
    prev = letter

您可以使用^{}进行此操作:

>>> s = "aaaXXXbbbXXXcccXdddXXXXXeXf"
>>> import itertools
>>> sum(e == 'X' for e, g in itertools.groupby(s))
5

它将iterable中的元素分组如果没有给定键函数,它只对相等的元素分组。然后,只需使用sum来计算键为'X'的元素。在

或者regular expressions

^{pr2}$

相关问题 更多 >