si vous ne souhaitez pas utiliser les collections de la bibliothèque, vous pouvez toujours faire quelque chose comme ceci:
étant donné qu' a
et b
sont vos listes, le suivant renvoie le nombre d'éléments correspondants (il considère l'ordre).
sum([1 for i,j in zip(a,b) if i==j])
Par conséquent,
len(a)==len(b) and len(a)==sum([1 for i,j in zip(a,b) if i==j])
sera True
si les deux listes sont les mêmes, contiennent les mêmes éléments et dans le même ordre. False
sinon.
Ainsi, vous pouvez définir la fonction de comparaison comme la première réponse ci-dessus,mais sans les collections de la bibliothèque.
compare = lambda a,b: len(a)==len(b) and len(a)==sum([1 for i,j in zip(a,b) if i==j])
et
>>> compare([1,2,3], [1,2,3,3])
False
>>> compare([1,2,3], [1,2,3])
True
>>> compare([1,2,3], [1,2,4])
False