2016-05-23 8 views
0

私はPython初心者です。Pythonで、リストのリストからの要素を結合要素リストの新しいリストに結合しようとしています

result = [[1,4,7,10],[2,5,8,11],[3,6,9,12]] 

私はその意志解決策を探しています:私は、結果として得られるように、各リストの要素を組み合わせたい

test=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 

私はリストのリストを持っていますn要素のために働きます。答えはリストのリストです(タプルのリストは私のためには働きません)。理想的には、テストには一定数の代わりにn個の要素が必要です。

私は次のように機能するであろうことを望む:

result = map(zip,test) 

しかし、それはしていません。

これを行うには簡単な方法がありますか?

+0

リストでベクトル関数を実行したいように見えますか?マッピングと圧縮は、より単純なリスト機能にまで範囲が限定されています。もっと複雑な機能が必要な場合は、セットの使用を検討してください。 – SkyLeach

+0

@プルーン、そうは思わない。それは答えとしてタプルのリストを参照しています。私は具体的に答えのリストを探しています。 –

+0

違いは簡単な型キャスト操作です。私はこの質問の重要な部分が** zip(* test)**の洞察であると感じています。上記の質問を、この洞察を最も容易に説明するものとして選んだ。 – Prune

答えて

2
result = map(list, zip(*test)) 
+0

ありがとうございます。これは私にリストとして要素を与えます。 –

3

あなたはmap()を探していません。

あなたはアンパックとzip()を探している、この関数は正確に何をしたいん:

result = zip(*test) 
# [(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)] 

あなたは本当にあなたがmap()を使用することができますが、リストのリストが必要な場合:

result = map(list, zip(*test)) 
# [[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]] 

注意Python 3を使用している場合、zip()map()は、listを返さないため、式全体をlist()キャストでラップする必要があるかもしれません。

+0

ありがとう!私はアスタリスクを忘れていた。 :-) –

関連する問題