一個名單上有列出的以下列表:Python列表理解:壓扁列表的列表返回的5S
>>>> vec=[[1,2,3],[4,5,6],[7,8,9]]
要使用列表理解壓扁列出的清單,我可以使用:
>>>>[i for k in vec for i in k]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
但如果我寫:
>>>> [i for k in vec]
[5,5,5]
>>>> [i for k in vec for k in k]
[5, 5, 5, 5, 5, 5, 5, 5, 5]
甚至改變vec=[[2,89,6],[34,7,10],[812,55,7],[76765,34,99]]
>>>> [i for k in vec]
[5,5,5,5]
>>>> [i for k in vec for k in k]
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
那麼發生了什麼事?這些5是從哪裏來的?
'i'無關與您的清單,因爲你不使用它作爲一個循環變量。它仍然具有與您使用它完全無關的事情的'5'值。 – user2357112
我不知道你是如何得到這個結果的,但[我爲vec中的k]給出了一個錯誤:「i」沒有被定義... –
單獨嘗試'i' - 在列表理解之外。打賭它是5. – dawg