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)
添加回答
舉報
