Python-嵌套列表的推导式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-嵌套列表的推导式相关的知识,希望对你有一定的参考价值。

列表推导式的第一个表达式可以是任何表达式,包括另外一个列表推导式。
考虑下面的3×4矩阵的示例,其被实现为长度为4的3个列表的列表:

list = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
#下面的列表推导式将转置行和列:
new_list = [[n[i] for n in list] for i in range(4)]
print(new_list)
#输出结果:
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

上面的例子等效于:

list = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
li = []
for i in range(4):
    li.append([n[i] for n in list])
print(li)
#输出结果:
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

内建函数复杂的流程句,zip()函数这个更容易实现:

list = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
list(zip(*list))
输出:
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

以上是关于Python-嵌套列表的推导式的主要内容,如果未能解决你的问题,请参考以下文章

Pythond的推导模式和迭代器

Python 推导式(列表推导式,字典推导式,集合推导式)

好好学python · 你真的会列表吗(列表推导式质检员)

好好学python · 你真的会列表吗(列表推导式质检员)

python的各种推导式(列表推导式字典推导式集合推导式)

Python 全栈开发:python的推导式(列表推导式字典推导式集合推导式)