-6
a = [0,1]+[2 for _ in range (10**7+1)]
我想知道Python 3中的代碼是幹什麼的?我嘗試打印列表,但它花了太長時間...我真的在問第二部分。我對那裏的下劃線感到困惑。Python for循環生成列表?
a = [0,1]+[2 for _ in range (10**7+1)]
我想知道Python 3中的代碼是幹什麼的?我嘗試打印列表,但它花了太長時間...我真的在問第二部分。我對那裏的下劃線感到困惑。Python for循環生成列表?
首先該表達式被稱爲列表理解。它用於在迭代另一個列表/可迭代時創建一個新列表。一個好的場景是
[value for item in range(integer)]
新陣列產生[]
,該數組的值將取決於value
從上面的表達式在每次迭代。這意味着如果你做一些線
[x for x in range(3)] # returns [0,1,2]
[x*4 for x in range(2)] # returns [0,4,8]
在這種情況下,值可以是一個表達式或常量 在你的,因爲每一次迭代中值的情況下[2 for x in range(3)] # returns [2,2,2]
保持2
我幾乎忘了[a,b] + [c,d,e] = [a,b,c,d,e]
所以要簡單[0,1] + [2 for x in range(3)] # returns [0,1,2,2,2]
最後你的範圍太大了,這就是爲什麼它在評論中提到太久了!
'_'只是一個像其他任何變量名稱。他們可以稱它爲'i'或'wilco'或'michaeljordan'。 – user2357112
'[2 for _in range(10 ** 7 + 1)]'給你一個長度爲10 ** 7 + 1的列表,其中元素全部爲2 – Ding
這會將10 ** 7 + 1 2s附加到' [0,1]' – depperm