3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
只要條件為真,while 循環(huán)就會(huì)執(zhí)行一組語(yǔ)句。您正在使b等于第一個(gè)列表中的(element +1) No i 。因此,您必須將它保留在語(yǔ)句內(nèi),因?yàn)槿绻鷮⑺A粼谡Z(yǔ)句外,它將不會(huì)是i的迭代。

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先,如果你把變量b放在循環(huán)之上,在你的例子中,python只根據(jù)i的值設(shè)置b變量一次。在 while 循環(huán)期間,您更改i變量但不重寫(xiě)b,因?yàn)樗龇秶?。更?jiǎn)單的例子:
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
其次,對(duì)于您的任務(wù),您應(yīng)該使用所謂的“列表理解”——它們更緊湊且易于閱讀。此外,在您的代碼中您不使用 numpy 模塊,因此無(wú)需導(dǎo)入它。
lst = [0, 1, 2, 3, 4]
lst_2 = [i+1 for i in lst]
print(lst_2)
輸出:
[1, 2, 3, 4, 5]

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
好吧,如果你不這樣做,它將永遠(yuǎn)運(yùn)行,但你也可以使用這樣的“for”循環(huán):
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)
添加回答
舉報(bào)