当循环向两个方向行驶时 - 继续前进直到两端



给定一个列表

[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,并在使用ki之前进行内部检查

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

最新更新