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

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

10.08.2021, 09:42. Показов 6527. Ответов 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
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
10.08.2021, 19:20
Цитата Сообщение от Taron8117 Посмотреть сообщение
В частности, не понимаю что означает matrix[0]
попробуйте почитать раздел списки, и индексы списков. там все подробно и понятно изложено
0
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,762
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
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru