НачатьНачать бесплатно

Обращение к подмассивам

Попрактикуемся в работе с элементами массивов NumPy! Ваша задача — преобразовать квадратный двумерный массив square размера size в список, обходя его по спирали:

Traversing the matrix in spiral way

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

Модуль numpy уже импортирован как np.

Вам понадобится функция reversed(), которая разворачивает итерируемый объект в обратном порядке.

Это упражнение является частью курса

Практика задач для собеседования по программированию на Python

Посмотреть курс

Инструкции к упражнению

  • Преобразуйте в список каждый фрагмент, отмеченный красной стрелкой.
  • Преобразуйте в список каждый фрагмент, отмеченный зелёной стрелкой.
  • Преобразуйте в список каждый фрагмент, отмеченный синей стрелкой.
  • Преобразуйте в список каждый фрагмент, отмеченный пурпурной стрелкой.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

spiral = []

for i in range(0, size):
    # Convert each part marked by any red arrow to a list
    spiral += list(square[i, ____:____])
    # Convert each part marked by any green arrow to a list
    spiral += list(square[____:____, size-i-1])
    # Convert each part marked by any blue arrow to a list
    spiral += list(reversed(square[size-i-1, ____:____]))
    # Convert each part marked by any magenta arrow to a list
    spiral += list(reversed(square[____:size-i-1, ____]))
        
print(spiral)
Редактировать и запускать код