Python,字符串中字符的特定计数

Python,字符串中字符的特定计数,python,count,find,Python,Count,Find,我试图在python中计算字符串中出现的次数。我想要一个二进制输入,比如“001101”。然后计算1、0、11、00等的数量 我试图通过使用count来实现这一点,但这将输出3个1,当我只希望它输出1个1和11个,并且它不单独计算它们,除非它们是独立的 我也尝试用find实现这个功能,但是我遇到了同样的问题 感谢您的帮助。您可以使用和执行以下操作: 这会将字符串分组为仅包含相等字符的子字符串,并对这些子字符串执行计数。您可以使用正则表达式解决此问题: >>> import re

我试图在python中计算字符串中出现的次数。我想要一个二进制输入,比如“001101”。然后计算1、0、11、00等的数量

我试图通过使用count来实现这一点,但这将输出3个1,当我只希望它输出1个1和11个,并且它不单独计算它们,除非它们是独立的

我也尝试用find实现这个功能,但是我遇到了同样的问题


感谢您的帮助。

您可以使用和执行以下操作:


这会将字符串分组为仅包含相等字符的子字符串,并对这些子字符串执行计数。

您可以使用正则表达式解决此问题:

>>> import re
>>> s='001101'
单一的:

>>> sum(1 for _ in re.finditer('(?<!1)1(?!1)', s))
1

>>如果不想指定要查找的字符序列,则在re.finditer(')(?通用解决方案中,sum(1)代表uu

def count_unique_chars(string):
    char_count = {}
    char = ''

    for pair in zip(list(string), list(string[1:]) + [None]):

        char += pair[0]

        if pair[0] == pair[1]:
            continue

        else:

            if char in char_count.keys():
                char_count[char] += 1
            else:
                char_count[char] = 1

            char = ''

    return char_count
输出具有唯一字符计数的dict

count_unique_chars('001101')
{'0':1,'00':1,'1':1,'11':1}

{'0':3,'00':2,'000':2,'1':3,'11':2,'1111':1}

{':1,'d':1,'e':1,'h':1,'l':1,'ll':1,'o':2,'r':1,'w':1}


因此,您只想计算单个序列的出现次数?例如单个
1
的数量、
11
的数量、
111
的数量等等?“然后计算1、0、11s、00s等的数量”例如,在查找
1
s时,在对它们进行
计数之前,用
0
s填充它们,如
010
加上开头和结尾的边格
10
01
。是的,单个序列,但111的序列不会产生3个1,而不是1个111。谢谢,我没想到那只是一首诗
def count_unique_chars(string):
    char_count = {}
    char = ''

    for pair in zip(list(string), list(string[1:]) + [None]):

        char += pair[0]

        if pair[0] == pair[1]:
            continue

        else:

            if char in char_count.keys():
                char_count[char] += 1
            else:
                char_count[char] = 1

            char = ''

    return char_count
count_unique_chars('001101')
count_unique_chars('001101011000100111101000')
count_unique_chars('hello world')