vec = [[1,2,3], [4,5,6], [7,8,9]]
print [num for elem in vec for num in elem] <----- this
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
这是骗我的.
我的理解是ELEM名单从内部列表for elem in vic
我不太明白的用法num,并for num in elem在开始和结束.
python如何解释这个?
它看起来的顺序是什么?
我尝试在内部列表中使用外部列表理解的值:
[ x for x in range(y) for y in range(3) ]
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这引发了一个NameError,因为名称y是未知的(尽管外部列表理解指定了它).
这是Python的限制(尝试过2.7.3和3.2.3)还是有充分的理由说明为什么这不起作用?
有计划摆脱限制吗?
是否有解决方法(一些不同的语法,我可能没想到)来实现我想要的?