list=['a','a','x','c','e','e','f','f','f']
i=0
count = 0
while count < len(list)-2:
if list[i] == list[i+1]:
if list [i+1] != list [i+2]:
print list[i]
i+=1
count +=1
else:print "no"
else:
i +=1
count += 1
我得到了:
else:print "no"
^
IndentationError: unexpected indent
我正在尝试仅打印与以下元素匹配的elts,但不打印后面的元素。我是Python的新手,我不确定为什么这不起作用。
答案 0 :(得分:7)
这是修复后的代码(在else子句之后添加count += 1
以确保它终止):
list=['a','a','x','c','e','e','f','f','f']
i=0
count = 0
while count < len(list)-2:
if list[i] == list[i+1]:
if list [i+1] != list [i+2]:
print list[i]
i+=1
count +=1
else:
print "no"
count += 1
else:
i +=1
count += 1
使用itertools的更高级解决方案更紧凑,更容易实现:
from itertools import groupby
data = ['a','a','x','c','e','e','f','f','f']
for k, g in groupby(data):
if len(list(g)) > 1:
print k
答案 1 :(得分:2)
代码对我没有错误(虽然你陷入了循环)。确保没有混合标签和空格。