Organizar listas en Python puede ser un dolor de cabeza, para ello te traemos sorted(), una función que te va a servir en cualquier contexto, ya sea que trabajes con números, cadenas o estructuras más complejas, esta herramienta te puede ayudar y por eso en este artículo queremos contarte de qué se trata.
¿Qué es sorted() en Python?
La función sorted() en Python te permite ordenar cualquier iterable (como listas, tuplas o incluso diccionarios) y devuelve una nueva lista con los elementos organizados. Su uso es simple, pero increíblemente poderoso, ya que incluye opciones para personalizar el orden y adaptarlo a tus necesidades.
Su sintaxis es la siguiente:
sorted(iterable, key=None, reverse=False)
- iterable: Es la colección de datos que deseas ordenar, como una lista o una tupla.
- key: Es una función opcional que especifica cómo ordenar los elementos. Por defecto es None.
- reverse: Un valor booleano que, si se establece en True, ordena los elementos en orden descendente. Por defecto es False.
Algunas de las ventajas que podemos encontrar en el sorted() son:
- Fácil de usar: sorted() es intuitiva y funciona con cualquier iterable.
- Inmutable: No modifica el iterable original, sino que devuelve una nueva lista.
- Versátil: Permite personalizar el orden usando parámetros como key y reverse.
Algunos ejemplos
Veamos algunos ejemplos que nos permitan entender cómo funciona el sorted() en contextos reales:
- Ordenar números: en esta situación tienes una tupla con números desordenados. Con sorted(), puedes ordenarlos en cuestión de segundos:
numeros = (5, 2, 9, 1, 7)
resultado = sorted(numeros)
print(resultado) # Salida: [1, 2, 5, 7, 9]
El resultado es una lista con los números organizados de menor a mayor.
- Ordenar cadenas alfabéticamente:
letras = ("b", "a", "d", "c")
resultado = sorted(letras)
print(resultado) # Salida: ['a', 'b', 'c', 'd']
- Ordenar en orden descendente: Si necesitas el orden inverso, solo tienes que activar el parámetro reverse:
numeros = [10, 3, 5, 1]
resultado = sorted(numeros, reverse=True)
print(resultado) # Salida: [10, 5, 3, 1]
- Ordenar por longitud de palabras: Puedes usar el parámetro key para ordenar basándote en criterios personalizados, como la longitud de las palabras:
palabras = ["manzana", "kiwi", "fresa", "mango"]
resultado = sorted(palabras, key=len)
print(resultado) # Salida: ['kiwi', 'mango', 'fresa', 'manzana']
- Ordenar usando una función personalizada: También puedes definir tus propias reglas de orden con una función personalizada. Por ejemplo, ordenar números según su cercanía al 10:
def cerca_de_diez(n):
return abs(10 - n)
numeros = [4, 11, 8, 15, 2]
resultado = sorted(numeros, key=cerca_de_diez)
print(resultado) # Salida: [11, 8, 15, 4, 2]
Diferencias entre sorted() y sort()
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaEs importante no confundir sorted() con el método sort(). Aunque ambos ordenan elementos, tienen diferencias clave:
- sorted(): Es una función que no modifica el iterable original y devuelve una nueva lista.
- sort(): Es un método que solo funciona con listas y modifica la lista original.
Ejemplo con sort():
numeros = [5, 2, 9, 1, 7]
numeros.sort()
print(numeros) # Salida: [1, 2, 5, 7, 9]
En este caso, la lista original es modificada directamente.
¿Qué no puede hacer sorted()?
Aunque sorted() es bastante versátil, tiene algunas limitaciones:
- Tipos incompatibles: No puedes ordenar listas que mezclen tipos incompatibles, como números y cadenas.
datos = [5, "hola", 3] # Esto generará un error resultado = sorted(datos)
- Rendimiento en datos grandes: Aunque es eficiente, el tiempo de ejecución puede aumentar considerablemente con conjuntos de datos masivos.
En Keepcoding queremos que, como nosotros, te introduzcas en el maravilloso mundo de la programación. Por eso, nuestro bootcamp en programación está abierto para que te inscribas e inicies tu camino por medio del aprendizaje de lenguajes conocidos y crees tus primeros programas, los cuales te permitirán adquirir experiencia y conseguir tu primer empleo en el mundo tech. No te pierdas esta gran oportunidad de ingresar en un sector lleno de oportunidades con altos salarios. ¡Únete a nosotros!