Python задача о сумме соседних элементов в матрице
Новичок, изучаю Python. Если вкратце, есть задача, где из исходных данных (матрицы) нужно получить матрицу, где каждый элемент равен сумме соседних (по вертикали и горизонтали, у крайних символов соседний элемент находится с противоположной стороны матрицы). Сам написал такой код, но при наличии одинаковых элементов этот код считает сумму для первого такого элемента, тогда как для каждого элемента нужна сумма соседних ему элементов. Собственно, вопрос: какие есть способы это сделать?
a = ()
b = []
while a != ["end"]:
a = input ().split()
if a == ["end"]:
break
c = [int(item) for item in a]
b.append(c)
for i in b:
for j in i:
ii, bi = i.index(j), b.index(i)
print (b[bi][(ii+1)%len(i)] + b[bi][ii-1] + b[(bi+1)%len(b)][ii] + b[bi-1][ii], end = " ")
print()
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Просто не используйте версию цикла "для гуманитариев", а возьмите классический for по индексам
for row in range(len(b)):
for col in range(len(b[row])):
используйте b[row][col-1] и т.д.