有人可以解释一下此Python代码吗?

时间:2019-04-21 11:23:24

标签: python list list-comprehension

虽然我知道这段代码是什么,但我不知道它是如何实现的。有人可以用最愚蠢的方式解释它吗?

vec = [[1,2,3], [4,5,6], [7,8,9]]
[num for elem in vec for num in elem]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

代码的第一部分返回以下内容:

[num for elem in vec]
[0, 0, 0]

它们是否为每个嵌套列表的第一项建立索引?

谢谢!

1 个答案:

答案 0 :(得分:0)

这只是一个具有两个循环的列表理解。大致等于:

ls = [] 
for elem in vec:
    for num in elem:
        ls.append(num)

  

代码的第一部分返回以下内容:

[num for elem in vec]
[0, 0, 0]

仅查看代码的那部分是没有意义的。这就像只看我答案的代码示例的最后两行,而不去看其他行就试图了解他们在做什么。