                                ##### Exercice 1 #####
def comptage(L:list):
    dico = {}
    for x in L:
        if x in dico :
            dico[x] = dico[x] + 1
        else :
            dico[x] = 1
    return dico

def compare(L,M):
    return comptage(L)==comptage(M)

                                ##### Exercice 2 #####

def correctionQCM(reponsesEleves,corrige):
    total = 0
    for cle in reponsesEleves:
        if reponsesEleves[cle] == corrige[cle] :
            total = total + 3
        else :
            total = total - 1
    return total

                                ##### Exercice 3 #####

def recherche1(L,k):
    test = False
    i = 0
    while (not test) and i<len(L) :
        test = (L[i][0] == k)
        i = i+1
    assert test == True
    return L[i-1][1]

def recherche2(dico, k):
    assert k in dico
    return dico[k]


from time import time

Trad=[[i,i] for i in range(10**6)]
dic={i:i for i in range(10**6)}

st1=time()
for i in range(5000):
	recherche1(Trad,i)
print("Résultat pour la première fonction :", time()-st1)

st2=time()
for i in range(5000):
	recherche2(dic,i)
print("Résultat pour la deuxième fonction :", time()-st2)






