【问题标题】:Loop through a list in Python, increasing the values whilst also moving through the list on each iteration循环遍历 Python 中的列表,增加值,同时在每次迭代时遍历列表
【发布时间】:2019-01-25 10:45:34
【问题描述】:

这是我的代码,用于在 excel 中提供行号:

clusters = 3
rowRef = [9, 12, 15]

x = 1
while x < clusters:
    rowRef[x:] = [a + 1 for a in rowRef]
    x = x + 1

我希望实现的输出是:

  • 第一个循环:[9,12,15]
  • 第二个循环:[9,13,16]
  • 第三个循环:[9,13,17]

因此,每次循环迭代时,它都会从列表中减少一项。但是,我得到的输出是:

[9, 10, 10, 11, 14, 17]

我需要改变什么才能让它工作?

【问题讨论】:

    标签: python list loops while-loop iteration


    【解决方案1】:

    您的列表理解还缺少一个切片:

    rowRef[x:] = [a + 1 for a in rowRef[x:]]
    

    否则,您将遍历整个列表,而不是每次处理剩余的列表。

    这里有live example

    【讨论】:

      【解决方案2】:

      这里有一个数学捷径,可以用更高效的代码实现您想要的输出。

      rowRef = [9, 12, 15]
      
      for i in range(1, len(rowRef)):
        rowRef[i] += i
      
      print(rowRef)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-25
        • 2018-10-26
        • 2019-04-15
        • 1970-01-01
        • 2020-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多