Las tuplas se comparan posición por posición: el primer elemento de la primera tupla se compara con el primer elemento de la segunda tupla; si no son iguales (es decir, el primero es mayor o menor que el segundo) entonces ese es el resultado de la comparación, de lo contrario se considera el segundo elemento, luego el tercero y así sucesivamente.
Ver operaciones de secuencia común :
Las secuencias del mismo tipo también admiten comparaciones. En particular, las tuplas y las listas se comparan lexicográficamente comparando los elementos correspondientes. Esto significa que para comparar igual, cada elemento debe comparar igual y las dos secuencias deben ser del mismo tipo y tener la misma longitud.
También comparaciones de valores para más detalles:
La comparación lexicográfica entre las colecciones incorporadas funciona de la siguiente manera:
- Para que dos colecciones comparen iguales, deben ser del mismo tipo, tener la misma longitud y cada par de elementos correspondientes debe comparar iguales (por ejemplo,
[1,2] == (1,2)
es falso porque el tipo no es el mismo).
- Las colecciones que admiten la comparación de pedidos se ordenan igual que sus primeros elementos desiguales (por ejemplo,
[1,2,x] <= [1,2,y]
tiene el mismo valor que x <= y
). Si no existe un elemento correspondiente, la colección más corta se ordena primero (por ejemplo, [1,2] < [1,2,3]
es verdadera).
Si no es igual, las secuencias se ordenan igual que sus primeros elementos diferentes. Por ejemplo, cmp ([1,2, x], [1,2, y]) devuelve lo mismo que cmp (x, y). Si el elemento correspondiente no existe, la secuencia más corta se considera más pequeña (por ejemplo, [1,2] <[1,2,3] devuelve True).
Nota 1 : <
y >
no significa "menor que" y "mayor que" pero "es anterior" y "es posterior": entonces (0, 1) "es anterior" (1, 0).
Nota 2 : las tuplas no deben considerarse como vectores en un espacio n-dimensional , en comparación con su longitud.
Nota 3 : refiriéndose a la pregunta /programming/36911617/python-2-tuple-comparison : no piense que una tupla es "mayor" que otra solo si algún elemento del primero es mayor que el correspondiente uno en el segundo
<
y>
. Por ejemplo,(0, 1) < (1, 0)
evalúa aTrue
.x = tuple([0 for _ in range(n)])
y haga lo mismo para y. Establecer n = 100, 1000, 10,000 y 100,000 y ejecutar%timeit x==y
valores de tiempo de .5, 4.6, 43.9 y 443 microsegundos respectivamente, que es lo más cercano a O (n) que prácticamente puede obtener.<
y>
no significa "menor que" y "mayor que", sino "viene antes" y "viene después": así que(0, 1)
"viene antes"(1, 0)