С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 23

Нужно написать функцию, которая для элемента возвращает всех его соседей

10.08.2021, 09:42. Показов 6416. Ответов 7

Студворк — интернет-сервис помощи студентам
Условие:
Дана матрица. Нужно написать функцию, которая для элемента возвращает всех его соседей. Соседним считается элемент, находящийся от текущего на одну ячейку влево, вправо, вверх или вниз. Диагональные элементы соседними не считаются.
Формат ввода
В первой строке задано n — количество строк матрицы. Во второй — количество столбцов m. Числа m и n не превосходят 1000. В следующих n строках задана матрица. Элементы матрицы — целые числа, по модулю не превосходящие 1000. В последних двух строках записаны координаты элемента (индексация начинается с нуля), соседей которого нужно найти.

Формат вывода
Напечатайте нужные числа в возрастающем порядке через пробел.

Решение:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def neighbors(matrix, y, x):
    d = []
    if x + 1 < len(matrix[0]):
        d.append(matrix[y][x + 1])
    if x - 1 >= 0:
        h.append(matrix[y][x - 1])
    if y + 1 < len(matrix):
        d.append(matrix[y + 1][x])
    if y - 1 >= 0:
        d.append(matrix[y - 1][x])
    return d
 
 
n = int(input())
m = int(input())
matrix =[list(map(int, input().split())) for i in range(n)]
y, x = int(input()), int(input())
print(*sorted(neighbors(matrix, y, x)))
Вопрос:
Объясните, пожалуйста, как работает эта программа? В частности, не понимаю что означает matrix[0].
Но хотелось бы пошаговое объяснение, чтобы я понял логику этой задачи.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.08.2021, 09:42
Ответы с готовыми решениями:

Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем
Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем. Массив наполнять вручную.. Если такого значения нет...

Нужно написать функцию которая на выход возвращает сумму квадратов всех переданных аргументов
Всем привет, нужна помощь. Необходимо написать функцию adder. На вход она получает произвольное количество целочисленных неименованных...

Нужно написать функцию getUsersInfo, которая получает массив всех пользователей и передает его в функцию коллбэк
Пример использования getUsersInfo((users) =&gt; { console.log(users); // }); Для получения данных вам предоставлены 2...

7
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,295
10.08.2021, 19:20
Цитата Сообщение от Taron8117 Посмотреть сообщение
В частности, не понимаю что означает matrix[0]
попробуйте почитать раздел списки, и индексы списков. там все подробно и понятно изложено
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
10.08.2021, 21:38
Python
1
2
3
4
5
6
7
8
9
10
n=int(input()) #rows
m=int(input()) #column
matrix=[map(int, input().split()) for _ in range(n)]
x=int(input())
y=int(input())
def neighbors(matrix, x, y):
    v=(0, 1,-1)
    ans=[matrix[y+j][x+i] for i in v  for j in v if i*i!=j*j and 0<=y+j<n and 0<=x+i<m]
    return sorted(ans)
print(neighbors(matrix, x, y))
2
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 23
12.08.2021, 11:06  [ТС]
Я задал простой вопрос, просто объясните пошагово как работает программа моя, если не сложно. Советовать что-то прочитать не нужно, это и так понятно. Я читал и ни один раз, не понял и пришел сюда, задал обычный конкретный вопрос.
0
11 / 9 / 2
Регистрация: 11.08.2021
Сообщений: 32
12.08.2021, 11:43
Лучший ответ Сообщение было отмечено Taron8117 как решение

Решение

Цитата Сообщение от Taron8117 Посмотреть сообщение
В частности, не понимаю что означает matrix[0].
Добрый день! Матрица это список списков. Соответственно matrix[0] это первый список в матрице. При обращении к матрице matrix[y][x] мы в [y] указываем номер списка, а в [y] номер элемента в этом списке.
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.08.2021, 12:16
Цитата Сообщение от Taron8117 Посмотреть сообщение
Я читал и ни один раз
не один
Сложная тема, согласен
0
11 / 9 / 2
Регистрация: 11.08.2021
Сообщений: 32
12.08.2021, 12:43
Запустите код, думаю так будет наглядней.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
height = 6
width = 4
 
print(f'Создаем новую матрицу {height} на {width}.')
matrix = [[0 for i in range(width)] for j in range(height)]
print(*matrix, sep='\n')
print()
 
y = 3
x = 2
 
print(f'Меняем значение координаты Y={y} X={x} на 1.')
matrix[y][x] = 1
print(*matrix, sep='\n')
1
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 23
12.08.2021, 13:10  [ТС]
Murderface, спасибо, теперь стало понятно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2021, 13:10
Помогаю со студенческими работами здесь

Написать функцию, которая для любого целого аргумента возвращает количество цифр в его записи.
Напишите функцию, которая для любого целого аргумента возвращает количество цифр в его записи. Прошу помочь.Буду очень признателен!!!

Написать функцию которая возвращает значение по ключу, если ключа нет, то создает ключ со значением 3 и возвращает его
Нельзя использовать if from typing import Any def get_or_set(collection: dict, key: Any) -&gt; Any: result = ? ...

Как написать функцию,которая возвращает индекс элемента матрицы?
С клавиатуры введено матрицу действительных чисел А,заданной размерности. Определить функцию, которая возвращает индекс элемента Матрицы А...

Написать функцию, которая принимает число, а возвращает его факториал
Написать функцию, в которую передают число х, а возвращает х! (факториал этого числа)(Консольное приложение) Дублирование тем...

Написать функцию, которая возвращает массив символов с элемента N по M из заданной строки
Стоит задача написать функцию, которая возвращает массив символов с элемента N по M из заданной строки str. Пишу так, но ничего не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru