【发布时间】:2015-12-23 21:24:21
【问题描述】:
如何计算 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 语句,上面的代码失败了。
我知道您可以只使用内置函数来做到这一点,并且更喜欢这种方式的解决方案。
【问题讨论】:
-
使用
len(word) - 1有什么问题?还会认为您需要将counter初始化为 1 -
好吧,这确实有很大帮助......我会继续努力,看看我是否能想出一个解决方案!
-
为什么不添加另一个 if 子句来检查 i 是否大于 len(word)
-
如果你的字符串是
'100011',你希望输出是什么?我的回答假设[("1", 1), ("0", 3), ("1", 2)],但也许你想要比这更细微的东西?