我正在寻找这个问题的答案:
我每次都在对一个条件进行循环测试(如果data[i]
为红色),并且当数组的值为红色时,我会打印一些内容,但是如果下一个值(data[i+1]
)不是' t red,我想在线上的其余部分打印其他东西而不测试下一个点是否为红色。所以我的代码看起来有点像这样。
For i in range (0, 64) :
If data[i] = red :
Print '#'
If data[i+1] != red :
#here i want to print '.' for the rest of the line without testing anything and getting out of the loop
Else :
print '#'
Else :
print '.'
我不知道该怎么做才能使这段代码发挥作用。
例如,如果在我的数组中有: data [i] = red,data [i + 1] =空白,data [i + 2] =红色。我想删除第二个红色。我想打印剩下的数组空白,而不测试空白后是否为红色。 我将在图像处理中使用该算法。我有两个球,一个在左边,一个在右边。该算法将完全删除右侧的算法。
答案 0 :(得分:0)
您是否尝试这样做:
data = ['red','','', 'red','red','red','red','', 'red','red','','']
for i in xrange(len(data)):
try:
if data[i] == 'red' and data[i+1] == 'red':
print '#',
elif data[i] == 'red' and data[i+1] != 'red' :
print '.',
except IndexError:
pass
ouput:
. # # # . # .
答案 1 :(得分:0)
如果'#'
打印red
,请打印'.'
。如果加载了序列red
,而不是red
,则为阵列的其余部分打印'.'
:
prev = None
it = iter(data)
for point in it:
if point == 'red':
print '#',
else:
print '.',
if prev == 'red': # encounted ['red', 'blank']
break
prev = point
for point in it:
print '.',
print
blank blank red red blank red blank red red
. . # # . . . . .