задача "Симпатичный узор" на python

Прописываю логику в цикле if а пайчарм пишет ошибку что я в if от строчки отнимаю число, хотя там работа с индексами должна быть(в задаче буквы но я и цифры вводил 0,1): TypeError: unsupported operand type(s) for -: 'list' and 'int'

a = []
n = int(input())
for i in range(n):
    b = []
    for j in range(n):
        b.append(input())
    a.append(b)
for i in a:
    for j in i:
        if a[i][j] == a[i - 1][j] and [i][j] == a[i + 1][j] and a[i][j] == a[i][j + 1] and a[i][j] == a[i][j - 1]: 
            print('no')
        else:
            print('yes')

Ответы (1 шт):

Автор решения: ganz

Во втором цикле переменная i является списком, следовательно обращение a[i] эквивалентно a[[1,2,3]] что вызовет ошибку. Здесь следует исспользовать функцию index ii=a.index(i) Вот изменённый код

a = []
n = int(input())
for i in range(n):
    b = []
    for j in range(n):
        b.append(input())
    a.append(b)
for i in a:
    ii=a.index(i) #получаем индекс элемента i
    for j in i:
        if a[ii][j] == a[ii - 1][j] and [ii][j] == a[ii + 1][j] and a[ii][j] == a[ii][j + 1] and a[ii][j] == a[ii][j - 1]: 
            print('no')
        else:
            print('yes')

[upd] проблемма не решена? внимание на строку b.append(input())

→ Ссылка