¿Cómo puedo comparar dos listas ordenadas en Python?

105

Si tengo una lista larga: myList = [0,2,1,0,2,1]la divido en dos listas:

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

¿Cómo puedo comparar estas dos listas para ver si ambas son iguales / idénticas, con la restricción de que deben estar en el mismo orden?

He visto preguntas que piden comparar dos listas ordenándolas, pero en mi caso específico, no estoy buscando una comparación ordenada, sino una comparación de lista idéntica.

Jeremy
fuente

Respuestas:

175

Simplemente use el ==operador clásico :

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

Las listas son iguales si los elementos del mismo índice son iguales. Entonces se tiene en cuenta el pedido.

Maxime Lorant
fuente
3
Esto puede devolver el siguiente error con una lista numerosa:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Alex Reynolds
Lo que dijo @AlexReynolds. Tienes que probar con all(arr1 == arr2)o (arr1 == arr2).all().
Julio
10

Si solo desea verificar si son idénticos o no, a == bdebe darle verdadero / falso teniendo en cuenta el orden.

En caso de que desee comparar elementos, puede usar numpy para comparar

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

Aquí, c contendrá una matriz con 3 elementos, todos los cuales son verdaderos (para su ejemplo). En el caso de que los elementos de ayb no coincidan, los elementos correspondientes en c serán falsos.

Vasanth
fuente
Y luego verifique si c.all () es verdadero
Pulkit Bansal
2

La expresión a == bdebería hacer el trabajo.

Abhiram
fuente