2017-08-19 7 views
0

2次元の行列は、リストのリストとしてPythonの行単位で表すことができます。各内部リストは、行列の1つの行を表します。例えば、行列Pythonで行列の転置を一行で解決するにはどうしたらいいですか?

1 2 3 
4 5 6 

は、[[1,2,3],[4,5,6]]と表される。

行列の転置は、各行を列にします。例えば、上記行列の転置は、この行方向の表現を使用して、入力として、二次元マトリックスを取り、同じ表現を使用して行列の転置を返すPython関数transpose(m)

1 4 
2 5 
3 6 

記述されています。

ここでは、関数の動作方法を示すいくつかの例を示します。関数への入力は常に空ではない行列であると仮定することができます。

>>> transpose([[1,4,9]]) 
[[1], [4], [9]] 

>>> transpose([[1,3,5],[2,4,6]]) 
[[1,2], [3,4], [5,6]] 
0 
>>> transpose([[1,1,1],[2,2,2],[3,3,3]]) 
[[1,2,3], [1,2,3], [1,2,3]] 
+2

は、一般的にSOの人々があなたの宿題を、そのような自分として*学生を支援*気にしないで、ここで話します。しかし、私たちはあまりにも遊びすぎて、実際にあなたのために*行うことはできません。あなたは自分自身であるように見えます。 –

+0

組み込みの[zip()](https://docs.python.org/2/library/functions.html#zip)関数を見てください。 – davidedb

答えて

0
import math 
def transpose(m): 
result=[[[m[j][i] for j in range (len(m))] for i in range (len(m[0]))] 
for r in result: 
    print(r) 

出力:

>>>transpose([[2,4,6],[7,8,9],[3,6,7]]) 
[[2,7,3],[4,8,6],[6,9,7]] 
+1

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 –

+0

答えとして「ありがとう」を追加しないでください。代わりに、あなたが最も役に立つと思った** [答えを受け入れる](https://stackoverflow.com/help/accepted-answer)**。 - [レビューから](/レビュー/低品質の投稿/ 17081834) – TheGameiswar

関連する問題