Оптимизировать алгоритм 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