def print_matrix(matrix): row_num = 0 print("\t\t [", end = "") for i in range(len(matrix)): if row_num == 0: print("[", end="") else: print("\t\t [", end="") for j in range(len(matrix[i])): print(matrix[i][j], end="") if j != len(matrix[i]) - 1: print(", ", end="") if row_num != len(matrix) - 1: print("]", end="") else: print("]]", end="") row_num += 1 if i != len(matrix) - 1: print(",", end=" ") print() def rotate_image(matrix): n = len(matrix) for row in range(n // 2): for col in range(row, n - row - 1): matrix[row][col], matrix[col][n - 1 - row] = matrix[col][n - 1 - row], matrix[row][col] matrix[row][col], matrix[n - 1 - row][n - 1 - col] = matrix[n - 1 - row][n - 1 - col], matrix[row][col] matrix[row][col], matrix[n - 1 - col][row] = matrix[n - 1 - col][row], matrix[row][col] return matrix # Driver code def main(): inputs = [[[1]], [[6, 9], [2, 7]], [[2, 14, 8], [12, 7, 14], [3, 3, 7]], [[3, 1, 1, 7], [15, 12, 13, 13], [4, 14, 12, 4], [10, 5, 11, 12]], [[10, 1, 14, 11, 14], [13, 4, 8, 2, 13], [10, 19, 1, 6, 8], [20, 10, 8, 2, 12], [15, 6, 8, 8, 18]]] for i in range(len(inputs)): print(i + 1, ".\tMatrix:", sep = "") print_matrix(inputs[i]) print("\n\tRotated matrix:", sep = "") print_matrix(rotate_image(inputs[i])) print("-" * 100) if __name__ == "__main__": main()