Encontrar celdas adyacentes en una matriz
¿Cómo encontrar las celdas adyacentes a la celda en la fila `f` y la columna `c` en una matriz `life` llena de #?

def cant_adyacentes(life, f, c):
    fs = life[f-1]
    fi = life[(f+1)%len(life)]
    i=(c+1)%len(life[0])
    return (fs[c-1], fs[c], fs[i], life[f][c-1], life[f][i], fi[c-1], fi[c], fi[i]).count('#')

def pruebas_cant_adyacentes():
    assert cant_adyacentes((['.']), 0, 0) == 0
    assert cant_adyacentes((['..', '..']), 0, 0) == 0
    assert cant_adyacentes((['..', '..']), 0, 1) == 0
    assert cant_adyacentes((['##', '..']), 0, 0) == 2
    assert cant_adyacentes((['##', '..']), 0, 1) == 2
    assert cant_adyacentes((['#.', '.#']), 0, 0) == 4
    assert cant_adyacentes((['##', '##']), 0, 0) == 8
    assert cant_adyacentes((['.#.', '#.#', '.#.']), 1, 1) == 4
    assert cant_adyacentes((['.#.', '..#', '.#.']), 1, 1) == 3

pruebas_cant_adyacentes()