Уведомления

Группа в Telegram: @pythonsu

#1 Март 7, 2023 20:43:37

alinaaaaaa
Зарегистрирован: 2023-03-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Удалить строку/столбец из двумерного массива

Создать новый двумерный массив, исключив из переданного двумерного массива строки и столбцы, состоящие из одинаковых элементов (т.е. строка, состоящая, предположим, из одних единиц, не должна попасть в новый двумерный массив).

подскажите пожалуйста, уже очень долго сижу над этим таском и ни к чему не могу прийти

Офлайн

#2 Март 8, 2023 00:59:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Удалить строку/столбец из двумерного массива

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



Отредактировано py.user.next (Март 8, 2023 01:13:17)

Офлайн

#3 Март 9, 2023 00:10:42

alinaaaaaa
Зарегистрирован: 2023-03-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Удалить строку/столбец из двумерного массива

py.user.next

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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version