【问题标题】:While Loop Going in Two Directions - Keep Going Until Both EndsWhile 循环往两个方向前进 - 一直循环到两端
【发布时间】:2020-06-04 04:37:02
【问题描述】:

给定一个列表

[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 循环将在 i 命中 0 或 k 命中 (m-1) 时结束,以较早者为准。我想保持另一端继续运行,直到它到达终点。例如,当 j = 2: i = 0, k = 4 时,我不希望 while 循环中断,而是继续 i = 0 和 k = 5。如何简洁地做到这一点?

【问题讨论】:

    标签: python while-loop


    【解决方案1】:

    将 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
    

    【讨论】:

      猜你喜欢
      • 2019-03-08
      • 2022-10-12
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      相关资源
      最近更新 更多