Verifique si la columna o diagonal en la matriz = x (Sin Numpy)

Puedo usar este código para verificar si una fila en una matriz = x:

q = [[1,2,1],[1,2,1],[2,1,2]]
answer = [sum(row) for row in q]
for i in range(0, len(q)):
    if answer[i] == 6:
        print "Player 2 won!"
    if answer[i] == 3:
        print "Player 1 won!"
if answer[i] != 6 and 3:
    print "It's a tie!"

¿Cómo puedo verificar si mi matriz tiene una diagonal o columna que = x, sin usar Numpy (¿Hay alguna forma matemática de hacerlo como se muestra arriba?)

Ejemplo: (X = algo que no importa)

q = [[1,X,X],[1,X,X],[1,X,X]] Debe imprimirTrue

q = [[1,X,X],[X,1,X],[X,X,1]] Debe imprimirTrue (Diagonal)

q = [[X,X,1],[X,1,X],[1,X,X]] Debe imprimirTrue (Diagonal {Otro})

q = [[1,X,X],[X,1,X],[X,1,X]] Debe imprimirFalse

q = [[X,1,X],[X,1,X],[X,1,X]] Debe imprimirTrue (Horizontal)

Cómo la matriz debe tener sus "condiciones ganadoras"

Respuestas a la pregunta(2)

Su respuesta a la pregunta