2017-09-14 63 views
-4
A=list(range(1,121)) 
for i in A: 
    A.remove(i) 
print(A) 

不應該是空的嗎?我真的沒有得到這個..爲什麼此代碼的輸出只有1到121之間的偶數?

+0

無效的代碼,根本不運行。 –

+0

@JohnZwinck當我編輯它時,我犯了一個錯誤。現在它應該可以工作 – PythOrN

+1

不要修改正在迭代的列表。這很糟糕。 –

回答

2

你通常不想修改你正在迭代的列表,因爲你會得到奇怪的結果,如你正在運行。

你有一個數字列表,1-121。你刪除第一個,一切都在記憶中移動,所以2現在處於零位。範圍2-122,你只會得到奇數。

x = [1, 2, 3, 4, 5, 6] 
for i in x: 
    x.remove(i) 
    #first time through x = [2, 3, 4, 5, 6] 
          #^i is still pointing here though and the next time 
          # through it will be pointing at 3 (i = 2) 
相關問題