Respuestas:
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 quex <= 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
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)
La documentación de Python lo explica.
Las tuplas y las listas se comparan lexicográficamente utilizando la comparación de 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.
La documentación de Python 2.5 lo explica bien.
Las tuplas y las listas se comparan lexicográficamente utilizando la comparación de 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.
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 ordena primero (por ejemplo, [1,2] <[1,2,3]).
Lamentablemente, esa página parece haber desaparecido en la documentación de las versiones más recientes.
a = ('A','B','C') # see it as the string "ABC"
b = ('A','B','D')
A se convierte a su correspondiente ASCII ord('A') #65
igual para otros elementos
Entonces,
>> a>b # True
puedes pensar que es una comparación entre una cadena (es exactamente, en realidad)
Lo mismo ocurre con los enteros también.
x = (1,2,2) # see it the string "123"
y = (1,2,3)
x > y # False
porque (1 no es mayor que 1, pasar al siguiente, 2 no es mayor que 2, pasar al siguiente 2 es menor que tres -lexicográficamente-)
El punto clave se menciona en la respuesta anterior.
piense que es un elemento antes de que otro elemento alfabéticamente no sea mayor que un elemento y, en este caso, considere todos los elementos de tupla como una cadena.
(1,2,3) > (1,2,2)
daTrue
<
y>
. Por ejemplo,(0, 1) < (1, 0)
evalúa aTrue
.