这是我的代码,用于在excel中提供行号:
clusters = 3
rowRef = [9, 12, 15]
x = 1
while x < clusters:
rowRef[x:] = [a + 1 for a in rowRef]
x = x + 1
我想要实现的输出是:
因此,每次循环迭代都会从列表中减少一项。但是,我得到的输出是:
[9,10,10,11,14,17]
要使其正常运行,我需要更改什么?
答案 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)