Python-ネストされたリストの派生

式を導出式の最初のリストは、さらに理解のリストを含み、任意の式を指定できます。
長さ3のリスト4のリストとして実装されている3×4行列、以下の例を考えます。

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]]

複雑なプロセス文機能を内蔵、郵便番号()関数は、これを達成するために簡単です:

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)]

おすすめ

転載: blog.51cto.com/14113984/2431206