Code Review Asked on February 25, 2021
What is the transpose of a matrix:
In linear algebra, the transpose of a matrix is an operator which flips a matrix over its diagonal; that is, it switches the row and column indices of the matrix A by producing another matrix, often denoted by Aᵀ.
Code
dimension = int(input())
matrix = []
transpose = []
for row in range(dimension):
entry = list(map(int,input().split()))
matrix.append(entry)
for i in range(dimension):
for j in range(dimension):
transpose.append(matrix[j][i])
m = 0
n = dimension
for x in range(dimension+1):
row = transpose[m:n]
list1 = [str(item) for item in row]
string2 = " ".join(list1)
print(string2)
m = n
n = n + dimension
My question
What all modifications I can do to this code to make it better furthermore efficient?
You're converting the matrix elements to int and then back to string without doing anything with the ints, so that's just wasteful.
Anyway, the usual way to transpose is zip
. Demo including mock input:
input = iter('''3
1 2 3
4 5 6
7 8 9'''.splitlines()).__next__
matrix = [input().split() for _ in range(int(input()))]
for column in zip(*matrix):
print(*column)
Output:
1 4 7
2 5 8
3 6 9
Answered by superb rain on February 25, 2021
You could do something like this:
dimension = int(input())
matrix = [list(map(int,input().split())) for _ in range(dimension)]
transpose = [[matrix[j][i] for j in range(dimension)] for i in range(dimension)]
PD: This still has to pass by every item on the matrix but it is a little more compact code, and if you're used to python you could find it a little more legible.
Answered by Jorge Morgado on February 25, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP