在Python中循环遍历列表,增加值,同时在每次迭代中遍历列表

时间:2018-08-18 18:31:41

标签: python list loops while-loop iteration

这是我的代码,用于在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]

要使其正常运行,我需要更改什么?

2 个答案:

答案 0 :(得分:2)

您对列表的理解又缺乏一层:

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

否则,您将遍历整个列表,而不是遍历其余列表以进行每次处理。

这里有live example

答案 1 :(得分:0)

这是数学上的捷径,可通过更高效的代码来实现所需的输出。

rowRef = [9, 12, 15]

for i in range(1, len(rowRef)):
  rowRef[i] += i

print(rowRef)