给定一个列表
[0, 1, 2, 3, 4, 5]
我想开始一个while循环,搜索在两个方向上满足特定条件的元素:
m = len(items)
for j in range(1, m-1):
i = j-1
k = j+1
while i >= 0 and k <= m-1:
*...condition involving a comparison between items[i] and items[k]...*
i -= 1
k += 1
这个 while 循环将在我命中 0 或 k 命中 (m-1( 时结束,以较早者为准。我想让另一端继续下去,直到它走到尽头。例如,当 j = 2: i = 0, k = 4 时,我不希望 while 循环中断,而是继续 i = 0 和 k = 5。如何简洁地做到这一点?
将 while 循环的条件更改为or
,并在使用k
或i
之前进行内部检查
m = len(items)
for j in range(1, m-1):
i = j-1
k = j+1
while i >= 0 or k <= m-1: # change 'and' to 'or' here
if (i >=0):
# do stuff with i
if (k <= m-1):
# do stuff with k
i -= 1
k += 1