Оптимизировать алгоритм Python

Есть вот такое решение задачи:

def operation(a, b, sym):
    if sym == '>':
        return a > b
    else:
        return a < b


N, M, Q = map(int, input().split())

cols = {x: i for i, x in enumerate(input().split())}

rows = [i for i in range(N)]
matrix = []

for _ in range(N):
    matrix.append(list(map(int, input().split())))

for i in range(Q):
    col, q, val = input().split()
    val = int(val)
    rows = [j for j in rows if operation(matrix[j][cols[col]], val, q)]

summa = 0

for r in rows:
    summa += sum(matrix[r])
print(summa)

Но оно не проходит по времени один из тестов. Как можно оптимизировать решение?

Вводится матрица N*M. Вводятся некоторые условия типа a > 10 (где a это название колонки, то есть все значения из колонки проверяются на соответствие условию). В результате нужно вывести сумму чисел в тех строках, которые подошли под все условия.

Ввод:

2 2 3

a b

1 1

2 2

a < 3

b > 1

b < 3

Вывод:

4

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