小编典典

计算连续字符

python

如何在Python中计算连续字符,以查看每个唯一数字在下一个唯一数字之前重复的次数?

起初,我以为我可以做类似的事情:

word = '1000'

counter=0
print range(len(word))


for i in range(len(word)-1):
    while word[i]==word[i+1]:
        counter +=1
        print counter*"0"
    else:
        counter=1
        print counter*"1"

这样,我就可以看到每个唯一数字重复的次数。但是,这当然会在i达到最后一个值时超出范围。

在上面的示例中,我希望Python告诉我1重复1,而0重复3次。但是,由于我的while语句,上面的代码失败了。

我知道您可以使用内置函数来做到这一点,并且希望采用这种方式的解决方案。


阅读 218

收藏
2020-12-20

共1个答案

小编典典

一种“那种方式”的解决方案,仅包含基本声明:

word="100011010" #word = "1"
count=1
length=""
if len(word)>1:
    for i in range(1,len(word)):
       if word[i-1]==word[i]:
          count+=1
       else :
           length += word[i-1]+" repeats "+str(count)+", "
           count=1
    length += ("and "+word[i]+" repeats "+str(count))
else:
    i=0
    length += ("and "+word[i]+" repeats "+str(count))
print (length)

输出:

'1 repeats 1, 0 repeats 3, 1 repeats 2, 0 repeats 1, 1 repeats 1, and 0 repeats 1'
#'1 repeats 1'
2020-12-20