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