3 回答
TA贡献1816条经验 获得超4个赞
只要条件为真,while 循环就会执行一组语句。您正在使b等于第一个列表中的(element +1) No i 。因此,您必须将它保留在语句内,因为如果您将它保留在语句外,它将不会是i的迭代。
TA贡献1801条经验 获得超8个赞
首先,如果你把变量b放在循环之上,在你的例子中,python只根据i的值设置b变量一次。在 while 循环期间,您更改i变量但不重写b,因为它超出范围。更简单的例子:
lst = [0, 1, 2, 3, 4]
n = len(lst) # n=5
i = 0
b1 = lst[i]
while i < n:
b2 = lst[i]
print(f'Loop {i+1}: b1={b1} | b2={b2}')
i += 1
输出:
Loop 1: b1=0 | b2=0
Loop 2: b1=0 | b2=1
Loop 3: b1=0 | b2=2
Loop 4: b1=0 | b2=3
Loop 5: b1=0 | b2=4
其次,对于您的任务,您应该使用所谓的“列表理解”——它们更紧凑且易于阅读。此外,在您的代码中您不使用 numpy 模块,因此无需导入它。
lst = [0, 1, 2, 3, 4]
lst_2 = [i+1 for i in lst]
print(lst_2)
输出:
[1, 2, 3, 4, 5]
TA贡献1779条经验 获得超6个赞
好吧,如果你不这样做,它将永远运行,但你也可以使用这样的“for”循环:
import numpy as np
liste=[2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060,
2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096]
liste2=[]
for _ in range(24):
b=liste[i] +1
liste2.append(b)
print(liste2)
添加回答
举报