Найти - Пользователи
Полная версия: Удалить строку/столбец из двумерного массива
Начало » Центр помощи » Удалить строку/столбец из двумерного массива
1
alinaaaaaa
Создать новый двумерный массив, исключив из переданного двумерного массива строки и столбцы, состоящие из одинаковых элементов (т.е. строка, состоящая, предположим, из одних единиц, не должна попасть в новый двумерный массив).

подскажите пожалуйста, уже очень долго сижу над этим таском и ни к чему не могу прийти
py.user.next
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]]
>>>
Можно сделать и в одном целом действии это всё, но рано или поздно попадётся задача, которая не будет к этому предрасположена. И придётся всё равно делить одно целое действие на несколько разных целых действий. Так что учись сразу это делать.
alinaaaaaa
py.user.next

Спасибо вам большое за помощь, я разобралась <3

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB