как я могу уменьшить время выполнения, необходимое для кода Python?

#python #python-3.x #arraylist

#python #python-3.x #arraylist

Вопрос:

 #https://www.codechef.com/problems/GRIDGM
from sys import setrecursionlimit
setrecursionlimit(10**6)
def sol(l,lst):
    sum=0
    for i in range(l[0],l[2] 1):
        for j in range(l[1],l[3] 1):
            #print(lst[i-1][j-1],end="")
            sum  = lst[i-1][j-1]
        #print('---')
    #print("sol below")    
    return sum
            
for _ in range(int(input())):
    n,m=map(int, input("enter values of n and m").split())
    lst=[]
    for _ in range(n):
        lst.append(list(map(int,input("enter a row").split())))
        #print(lst)
    #q=int(input())
    
    #dj=[] #it saves x y and a b
    for _ in range(int(input("enter no of queries"))):
        #v=list(map(int,input().split()))
        #print(v)
        #print('sol below')
        print(sol(list(map(int,input("enter cordinates").split())),lst))
 

пример ввода

 1
4 4
9 13 5 2
1 11 7 6
3 7 4 1
6 0 7 10
2
2 1 4 2
2 2 4 4
 

вывод

 
28
53
 

выполнение приведенного выше кода заняло 5,1 секунды.
в этом вопросе мне нужно найти сумму элементов в заданных координатах a, b и x, y
более подробную информацию об этой проблеме можно найти по ссылке ниже.
https://www.codechef.com/problems/GRIDGM

Комментарии:

1. Обратите внимание, что вы можете передавать строку в свои входные вызовы, например input("Enter x values: ") , чтобы знать, где вы находитесь

2. хорошо, я сделаю это

3. Кроме того, я не вижу никакой рекурсии, почему вы меняете предельную рекурсию?

4. Это была моя ошибка, я использовал ее для своей предыдущей проблемы

5. Это не повлияет на код, верно