Aller au contenu

Tester si deux listes contiennent des valeurs différentes⚓︎

Un laboratoire reçoit des résultats depuis deux sources différentes. Les résultats sont deux tableaux d'entiers source_1 et source_2 de même longueur.

Quand deux résultats concordent, on considère qu'il n'y aura pas à refaire l'expérience, on le codera par False, mais si les résultats sont différents, on considère qu'il faudra refaire cette expérience, on le codera par True.

Écrire une fonction telle que differences(source_1, source_2) renvoie un tableau de la longueur commune à source_1 et source_2 rempli de booléens.

Exemples
🐍 Console Python
>>> differences([14, 87, 22, 5, 65], [14, 86, 27, 5, 65])
[False, True, True, False, False]
>>> differences([-54], [-54])
[False]
>>> differences([7, 8], [7, 11])
[False, True]
>>> differences([], [])
[]
###
# testsbksl-nlbksl-nlassert differences([14, 87, 22, 5, 65], [14, 86, 27, 5, 65]) == [bksl-nl False,bksl-nl True,bksl-nl True,bksl-nl False,bksl-nl False,bksl-nl]bksl-nlbksl-nlassert differences([-54], [-54]) == [False]bksl-nlassert differences([7, 8], [7, 11]) == [False, True]bksl-nlassert differences([], []) == []bksl-nlbksl-nl# autres testsbksl-nlbksl-nlsourcepy-und1 = list(range(20))bksl-nlsourcepy-und2 = list(range(20))bksl-nlassert differences(sourcepy-und1, sourcepy-und2) == [False] py-str 20bksl-nlbksl-nlsourcepy-und1 = list(range(20))bksl-nlsourcepy-und2 = list(range(1, 21))bksl-nlassert differences(sourcepy-und1, sourcepy-und2) == [True] py-str 20bksl-nlbksl-nlsourcepy-und1 = list(range(21))bksl-nlsourcepy-und2 = list(range(20, -1, -1))bksl-nlassert differences(sourcepy-und1, sourcepy-und2) == [True] py-str 10 + [False] + [True] py-str 10bksl-nlbksl-nlfor i in range(20):bksl-nl sourcepy-und1 = list(range(20))bksl-nl sourcepy-und2 = list(range(20))bksl-nl sourcepy-und2[i] = -1bksl-nl attendu = [False] py-str 20bksl-nl attendu[i] = Truebksl-nl assert differences(sourcepy-und1, sourcepy-und2) == attendubksl-nlbksl-nl 5/5

def differences(sourcepy-und1, sourcepy-und2):bksl-nl ...bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert differences([14, 87, 22, 5, 65], [14, 86, 27, 5, 65]) == [bksl-nl False,bksl-nl True,bksl-nl True,bksl-nl False,bksl-nl False,bksl-nl]bksl-nlbksl-nlassert differences([-54], [-54]) == [False]bksl-nlassert differences([7, 8], [7, 11]) == [False, True]bksl-nlassert differences([], []) == []bksl-nlbksl-nldef differences(sourcepy-und1, sourcepy-und2):bksl-nl return [a != b for a, b in zip(sourcepy-und1, sourcepy-und2)]bksl-nlbksl-nl

A

Autre version simple⚓︎

🐍 Script Python
def differences(source_1, source_2):
    n = len(source_1)
    resultat = []
    for i in range(n):
        resultat.append(source_1[i] != source_2[i])
    return resultat

Avec liste en compréhension⚓︎

🐍 Script Python
def differences(source_1, source_2):
    n = len(source_1)
    resultat = [source_1[i] != source_2[i] for i in range(n)]
    return resultat

Version style fonctionnel⚓︎

🐍 Script Python
def differences(source_1, source_2):
    return [a != b for a, b in zip(source_1, source_2)]

Z