Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで行列を回転させる


1つのnxn2D行列があるとします。この行列を時計回りに90度回転させる必要があります。したがって、行列が次のようになっている場合-

1 5 7
9 6 3
2 1 3

次に、出力は次のようになります

2 9 1
1 6 5
3 3 7

これを解決するには、次の手順に従います-

  • temp_mat =[]、col:=マトリックスの長さ–1を検討してください
  • 範囲0から行列の長さの列の場合
    • temp:=[]
    • マトリックスの範囲の長さの行の場合–1から-1まで
      • tempにmatrix[row、col]を追加
    • temp_matにtempを追加
  • 0から行列の長さまでの範囲のiの場合
    • 範囲0から行列の長さのjの場合
      • matrix [i、j]:=temp_mat [i、j]

理解を深めるために、次の実装を見てみましょう-

サンプルコード(Python)

class Solution(object):
   def rotate(self, matrix):
      temp_matrix = []
      column = len(matrix)-1
      for column in range(len(matrix)):
         temp = []
         for row in range(len(matrix)-1,-1,-1):
            temp.append(matrix[row][column])
         temp_matrix.append(temp)
      for i in range(len(matrix)):
         for j in range(len(matrix)):
            matrix[i][j] = temp_matrix[i][j]
      return matrix

ob1 = Solution()
print(ob1.rotate([[1,5,7],[9,6,3],[2,1,3]]))

入力

[[1,5,7],[9,6,3],[2,1,3]]

出力

[[2, 9, 1], [1, 6, 5], [3, 3, 7]]

  1. PythonでMatrixを初期化する

    この記事では、Python3.xで2次元リストを使用して行列を初期化する方法について学習します。またはそれ以前。 Python言語のみが提供するマトリックスを初期化する直感的な方法を見てみましょう。ここでは、リスト内包表記を利用します。内部リストを初期化し、リスト内包表記を使用して複数の行に拡張します。 例 # input the number of rows N = 3 # input the number of columns M = 3 # initializing the matrix res = [ [ i*j for i in range(N) ] for j in range(

  2. 文字列を回転させるためのPythonでの文字列スライス

    文字列が与えられます。私たちのタスクは、文字列を2つの方法にスライスすることです。 1つは時計回りで、もう1つは反時計回りです。 1.指定された文字列を左(または反時計回り)にd個の要素(d <=n)だけ回転させます。 2.指定された文字列を右(または時計回り)にd個の要素(d <=n)だけ回転させます。 例 Input: string = "pythonprogram" d = 2 Output: Left Rotation: thonprogrampy Right Rotation: ampythonprogr アルゴリズム Step 1: Enter string