From b7133f33620ad9907f5ca8adbcd3e5605676df4d Mon Sep 17 00:00:00 2001 From: William Mantly Date: Tue, 26 Sep 2023 23:20:41 +0000 Subject: [PATCH] Update 04-matrix-sort/row_col_sort.py --- 04-matrix-sort/row_col_sort.py | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/04-matrix-sort/row_col_sort.py b/04-matrix-sort/row_col_sort.py index e69de29..b0e4fc7 100644 --- a/04-matrix-sort/row_col_sort.py +++ b/04-matrix-sort/row_col_sort.py @@ -0,0 +1,52 @@ +def matrix_parse(matrix): + out = [] + for row in matrix.split('\n'): + out.append([int(col) for col in row.split()]) + + return out + +def matrix_sum(matrix): + row_sum = [] + col_sum = [0 for col in range(len(matrix)+1)] + + for row in matrix: + row_sum.append(sum(row)) + for idx, col in enumerate(row): + col_sum[idx] += col + + return row_sum, col_sum + +def matrix_get_element_width(matrix): + max = 0 + for row in matrix: + for element in row: + if max < len(str(element)): + max = len(str(element)) + + return max + +def matrix_print(matrix, width=None): + if not width: + return matrix_print(matrix, matrix_get_element_width(matrix)) + + for row in matrix: + print('', *['{:{}d}'.format(el, width) for el in row], '', sep=' | ') + +def matrix_from_file(file): + with open(file, 'r') as file: + + return matrix_parse(file.read()) + + +m1 ='''10 5 4 20 +9 33 27 16 +11 6 55 3''' + +# m1 = matrix_parse(m1) +# print(m1) +# print(matrix_sum(m1)) +# print(matrix_get_element_width(m1)) +# matrix_print(m1) + +m2 = matrix_from_file('./matrix.txt') +print(matrix_sum(m2))