python中的条件循环

时间:2013-05-19 03:47:11

标签: python

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的新手,我不确定为什么这不起作用。

2 个答案:

答案 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)

代码对我没有错误(虽然你陷入了循环)。确保没有混合标签和空格。