2017-04-16 4 views
0

リスト/タプルを「フリップ」する最もPythonの方法は何ですか?リスト/タプルをフリップするpythonic方法

私がフリップをしていることは、タプル[a] [b]のような構文で使用できるタプルのタプルがあり、それをタップル[b] [a]同じアイテムを取得する。

アン例:

t = [ 
    [1, 2, 3] 
    [4, 5, 6] 
] 

flipped(t) = [ 
    [1, 4] 
    [2, 5] 
    [3, 6] 
] 
+1

なお、リストのリストであることを、あなたはどのタプルを持っていません。 – jonrsharpe

+0

@jonrsharpe whoops。それは本当に重要ではありませんが、それを指摘してくれてありがとう。 –

答えて

2

転置と呼ばれます。

>>> t = [ 
...  [1, 2, 3], 
...  [4, 5, 6] 
... ] 
>>> zip(*t) 
[(1, 4), (2, 5), (3, 6)] 
>>> map(list, zip(*t)) 
[[1, 4], [2, 5], [3, 6]] 

tではなく、numpyのarrayた場合、彼らは転置返すプロパティTあります

>>> import numpy as np 
>>> np.array(t) 
array([[1, 2, 3], 
     [4, 5, 6]]) 
>>> np.array(t).T 
array([[1, 4], 
     [2, 5], 
     [3, 6]]) 
+0

私はそれが何と呼ばれているのか教えてくれてありがとう! –

4

ジップことであろう。 zipでは、要素をフリップ/トランスポーズする列ごとに(行列がある場合は)列単位で取得します。

list(zip(*t)) 
# [(1, 4), (2, 5), (3, 6)] 
+0

答えの説明がある方が良いです。 –

関連する問題