Menu
Coddy logo textTech

Ordenar datos de manera eficiente

Parte de la sección Lógica y flujo del Journey de Python de Coddy. Lección 48 de 78.

La ordenación es una operación fundamental en informática, y Python ofrece herramientas integradas potentes para ordenar datos de forma eficiente. La función principal para ordenar es sorted(), que se puede usar para ordenar varios tipos de datos, incluidos números, cadenas y objetos más complejos.

Ordenación básica:

La función sorted() toma un iterable (por ejemplo, una lista, una tupla o un conjunto) como argumento y devuelve una nueva lista que contiene los elementos ordenados. De forma predeterminada, ordena en orden ascendente.

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# Salida: [1, 1, 2, 3, 4, 5, 6, 9]

En este ejemplo, sorted() ordena la lista numbers en orden ascendente.

Ordenación inversa:

Para ordenar en orden descending, puedes usar el parámetro reverse y establecerlo en True.

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# Salida: [9, 6, 5, 4, 3, 2, 1, 1]

Aquí, sorted() ordena la lista numbers en orden descendente.

Ordenar cadenas:

La función sorted() también puede ordenar cadenas según su orden lexicográfico (es decir, el orden en que aparecerían en un diccionario).

words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# Salida: ['apple', 'banana', 'cherry']

En este ejemplo, sorted() ordena la lista words en orden alphabetically.

Ordenación personalizada con una función key:

Para necesidades de ordenación más complejas, puedes usar el parámetro key para especificar una función que determine el orden de ordenación. La función key se aplica a cada elemento antes de la ordenación, y los valores devueltos se utilizan para la comparación.

words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# Salida: ['fig', 'kiwi', 'banana']

En este caso, sorted() ordena la lista words según la longitud de cada palabra, utilizando la función len() como key.

challenge icon

Desafío

Fácil

Escribe un programa que realice las siguientes tareas de ordenación usando la función sorted():

  1. Ordena una lista de números en orden ascendente.
  2. Ordena la misma lista de números en orden descendente.
  3. Ordena una lista de cadenas en orden alfabético.
  4. Ordena la misma lista de cadenas según su longitud.

Pruébalo tú mismo

# Entradas iniciales
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]

# Tarea 1: Ordena los números en orden ascendente
# Tarea 2: Ordena los números en orden descendente
# Tarea 3: Ordena las palabras alfabéticamente
# Tarea 4: Ordena las palabras por longitud

# Reemplaza 'None' con tu código para cada tarea
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None

# Imprime los resultados
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Python online