diff options
| author | Gustav Sörnäs <gusso230@student.liu.se> | 2020-02-05 16:56:42 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gusso230@student.liu.se> | 2020-02-05 16:56:42 +0100 |
| commit | 35c2c6787fb87e27544521ea915a602afe09ac3f (patch) | |
| tree | d6f8c976cae73bac7f462f13cd89df79f28a94a2 /upg3_2.py | |
| parent | bf125b50ddbd7550c757c716d736bc65ea1f0a25 (diff) | |
| download | tdde44-35c2c6787fb87e27544521ea915a602afe09ac3f.tar.gz | |
Diffstat (limited to 'upg3_2.py')
| -rw-r--r-- | upg3_2.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/upg3_2.py b/upg3_2.py new file mode 100644 index 0000000..b216c1e --- /dev/null +++ b/upg3_2.py @@ -0,0 +1,38 @@ +from functools import reduce + +def sum_of_ints(values): + return reduce(lambda x,y: x + y if type(y) == int else x, values, 0) + +def flatten_list1(vals): + res = [] + for val in vals: + if type(val) == list: + res.extend(flatten_list1(val)) + else: + res.append(val) + return res + +def flatten_list2(vals): + return flatten_list1(vals) + +def get_first_column(matrix): + return [row[0] for row in matrix] + +def get_nth_column(n, matrix): + return [row[n-1] for row in matrix] + +def get_all_columns(matrix): + return [get_nth_column(i+1, matrix) for i in range(len(matrix[0]))] + +def scalar_product(vec1, vec2): + return sum(map(lambda pair: pair[0] * pair[1], zip(vec1, vec2))) + +def matrix_square(matrix): + new_matrix = [] + for row in matrix: + new_row = [] + for i in range(len(row)): + new_row.append(scalar_product(row, get_nth_column(i+1, matrix))) + new_matrix.append(new_row) + return new_matrix + |
