Comment puis-je comparer deux listes ordonnées en python?

105

Si j'ai une longue liste: myList = [0,2,1,0,2,1]que je divise en deux listes:

a = [0,2,1]
b = [0,2,1]

comment comparer ces deux listes pour voir si elles sont toutes les deux égales / identiques, avec la contrainte qu'elles doivent être dans le même ordre?

J'ai vu des questions demandant de comparer deux listes en les triant, mais dans mon cas particulier, je ne vérifie pas une comparaison triée, mais une comparaison de liste identique.

Jérémie
la source

Réponses:

175

Utilisez simplement l' ==opérateur classique :

>>> [0,1,2] == [0,1,2]
True
>>> [0,1,2] == [0,2,1]
False
>>> [0,1] == [0,1,2]
False

Les listes sont égales si les éléments au même index sont égaux. La commande est alors prise en compte.

Maxime Lorant
la source
3
Cela peut renvoyer l'erreur suivante avec une liste numpy:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Alex Reynolds
Ce que @AlexReynolds a dit. Vous devez tester avec all(arr1 == arr2)ou (arr1 == arr2).all().
juillet
10

Si vous voulez juste vérifier si elles sont identiques ou non, vous a == bdevriez vous donner vrai / faux avec la commande prise en compte.

Si vous souhaitez comparer des éléments, vous pouvez utiliser numpy pour la comparaison

c = (numpy.array(a) == numpy.array(b))

Ici, c contiendra un tableau avec 3 éléments qui sont tous vrais (pour votre exemple). Dans le cas où les éléments de a et b ne correspondent pas, alors les éléments correspondants dans c seront faux.

Vasanth
la source
Et puis vérifiez si c.all () est vrai
Pulkit Bansal
2

L'expression a == bdevrait faire le travail.

Abhiram
la source