def is_isolate(a, y, x):
k = len(a)
return a[y][x] == 0 or sum(a[i][j]
for i in range(max(y - 1, 0), min(y + 1, k))
for j in range(max(x - 1, 0), min(x + 1, k))) == 1
def verify(a):
k = len(a)
return all(is_isolate(a, i, j) for i in range(k) for j in range(k))
Рекомендуется следующий алгоритм. В функции verify производить перебор двумерного списка. Для каждого элемента (списка) со значением 1 вызывать еще одну вспомогательную функцию is_isolate для проверки изолированности единицы. То есть, функция is_isolate должна возвращать True, если единица изолирована и False в противном случае.
Как только встречается не изолированная единица, функция verify должна возвращать False. Если успешно доходим (по элементам списка) до конца, то возвращается значение True.
Функцию verify выполнять не нужно, только объявить.
P. S. При реализации функции is_isolate не следует прописывать восемь операторов if. Подумайте, как это можно сделать красивее (с точки зрения реализации алгоритма).
Тесты: https://github.com/selfedu-rus/test-python-base/tree/main/7/7.5.5