令人困惑的python列表理解

时间:2013-10-10 19:09:57

标签: python list python-2.7 list-comprehension

我正在试图弄清楚这个列表理解是如何工作的,但我不太明白它是如何工作的。如果有人可以写出非列表理解的等价物,我想我可以理解。

这就是我坚持的路线:

[item for sublist in li for item in sublist]

声明的目的是淘汰多维列表。以下是我测试它的一个例子:

>>> li = [[0,1],[1,3,5],[4,5,3,2]]
>>> [item for sublist in li for item in sublist]
[0, 1, 1, 3, 5, 4, 5, 3, 2]

2 个答案:

答案 0 :(得分:7)

非列表理解等价物:

arr = []
for sublist in li:
    for item in sublist:
        arr.append( item )

答案 1 :(得分:2)

循环版本的等价物如下所示:

result = []

for sublist in li:
    for item in sublist:
        result.append(item)

因此,列表推导中for语句的顺序等同于它们在嵌套for语句中的显示顺序。