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] и т.д.
→ Ссылка