alinaaaaaa
уже очень долго сижу над этим таском и ни к чему не могу прийти
Надо разделить одно целое действие на несколько разных целых действий.
>>> def are_duplicates(lst):
... e = lst[0]
... for i in lst:
... if i != e:
... return False
... return True
...
>>> matrix = [
... [1, 2, 1, 3],
... [1, 1, 1, 1],
... [4, 5, 1, 6],
... [7, 8, 1, 9]
... ]
>>>
>>> dup_rows = [i for i in range(len(matrix)) if are_duplicates(matrix[i])]
>>>
>>> dup_cols = [j for j in range(len(matrix[0]))
... if are_duplicates([matrix[i][j] for i in range(len(matrix))])]
>>>
>>> dup_rows
[1]
>>>
>>> dup_cols
[2]
>>>
>>> out = []
>>> for i in range(len(matrix)):
... if i in dup_rows:
... continue
... out.append([])
... for j in range(len(matrix[0])):
... if j not in dup_cols:
... out[-1].append(matrix[i][j])
...
>>> out
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>>
Можно сделать и в одном целом действии это всё, но рано или поздно попадётся задача, которая не будет к этому предрасположена. И придётся всё равно делить одно целое действие на несколько разных целых действий. Так что учись сразу это делать.