一个名单上有列出的以下列表: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