Comparación de tuplas

Los operadores de comparación funcionan con tuplas y otras secuencias. Python comienza comparando el primer elemento de cada secuencia. Si ambos elementos son iguales, pasa al siguiente elemento y así sucesivamente, hasta que encuentra elementos diferentes. Los elementos subsecuentes no son considerados (aunque sean muy grandes).

La función sort funciona de la misma manera. Ordena inicialmente el primer
elemento, pero en el caso de que ambos elementos sean iguales, ordena desde el
segundo elemento, y así sucesivamente.

  • Decorate.- (Decora) una secuencia, construyendo una lista de tuplas con uno o más índices ordenados precediendo los elementos de la secuencia,
  • Sort.- (Ordena) la lista de tuplas utilizando la función interna sort, y
  • Undecorate.- (Quita la decoración) extrayendo los elementos ordenados de la secuencia.

Estas características podría prestarse a un patrón de diseño llamado DSU.

Por ejemplo, suponiendo una lista de palabras que se quieren ordenar de la más larga a la más corta:

El primer bucle genera una lista de tuplas, donde cada tupla es una palabra precedida por su longitud.

El método sort compara el primer elemento (longitud) primero, y solamente considera el segundo elemento para desempatar. El argumento clave reverse=True indica a sort que debe ir en orden decreciente.

El segundo bucle recorre la lista de tuplas y construye una lista de palabras en orden descendente según la longitud. Las palabras de dos letras están ordenadas en orden alfabético inverso, así que “lo” aparece antes que “el” en la siguiente lista.

Por supuesto, la línea pierde mucho de su impacto poético cuando se convierte en una lista de Python y se almacena en orden descendente según la longitud de las palabras.