From d58ea9ddaafa5b5a25d310fbb8bbc2a9270a2d69 Mon Sep 17 00:00:00 2001 From: Andrea Date: Mon, 26 Jan 2026 01:22:53 +0100 Subject: [PATCH] chore: add `Matrix` class --- src/main.py | 7 ++++++- src/matrix.py | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/matrix.py diff --git a/src/main.py b/src/main.py index a3907c4..b3dd704 100644 --- a/src/main.py +++ b/src/main.py @@ -3,6 +3,7 @@ from strings import * from tree import * from counter import * +from matrix import * def trees(): t = build_tree((1, @@ -95,9 +96,13 @@ def counter(): c.incr() assert c.val == 1 +def matrix(): + m = Matrix([0, 1, 2, 3], [0, 4, 5, 6], [0, 7, 8, 9]) + print(m) + print(transpose(m)) def main(): - counter() + matrix() pass if __name__ == "__main__": diff --git a/src/matrix.py b/src/matrix.py new file mode 100644 index 0000000..6ead5ea --- /dev/null +++ b/src/matrix.py @@ -0,0 +1,19 @@ + +class Matrix: + def __init__(self, *rows): + self.rows = rows + self.number_of_columns = len(rows[0]) + self.number_of_rows = len(rows) + pass + + def __repr__(self): + return f"Matrix[{self.number_of_columns}x{self.number_of_rows}]{self.rows}" + +def transpose(m): + range_for_rows = range(m.number_of_rows) + range_for_columns = range(m.number_of_columns) + new_rows = [[None for x in range_for_rows] for x in range_for_columns] + for i in range_for_columns: + for j in range_for_rows: + new_rows[i][j] = m.rows[j][i] + return Matrix(*new_rows)