Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

Cómo ordenar listas en Python

clasificación de la lista de python
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Este artículo le enseñará cómo ordenar una lista en Python.

En Python, puede usar el ordenar() método para ordenar una lista en su lugar. O puede usar el incorporado ordenado () para obtener una copia ordenada de la lista.

En este tutorial, aprenderá:

  • sintaxis de la sort() método y el sorted() función
  • Ejemplos de código de clasificación de listas en orden ascendente y descendente
  • Personalice la ordenación con el key parámetro
  • Diferencia entre sort() vs sorted()

¡Comencemos! 👩🏽‍💻

Syntax of Python sort() Method

El sort() El método actúa en una lista de Python. Y ordena la lista en su lugar y modifica la lista original.

La sintaxis de Python sort() el método es:

<list>.sort(reverse = True | False, key = <func>)

Analicemos ahora la sintaxis anterior.

  • <list> es cualquier objeto de lista de Python válido.
  • reverse es un opcional parámetro que toma True o False.
  • El valor predeterminado de reverse is False, y la lista se ordena en orden ascendente. Dar True para ordenar la lista en orden descendente.
  • key también es un opcional parámetro que se establece en <func>.
  • <func> puede ser una función integrada o una función definida por el usuario.

En la siguiente sección, comenzará a codificar ejemplos simples.

How to Sort Python List in Ascending Order

Considere la lista nums. Para ordenar la lista en orden ascendente, puede llamar al sort() método de la lista.

▶ Ejecute el siguiente fragmento de código.

nums = [25,13,6,17,9]
nums.sort()
print(nums)

# Output: [6, 9, 13, 17, 25]

La lista nums se ha ordenado en orden ascendente y se ha modificado la lista original. Se llama clasificación en el lugar.

How to Sort Python List in Descending Order

Para ordenar la lista en orden descendente, configure reverse a True, Como se muestra abajo.

nums = [25,13,6,17,9]
nums.sort(reverse = True)
print(nums)

# Output: [25, 17, 13, 9, 6]

Puede ver que la lista ahora está ordenada en orden descendente.

How to Use key with Python sort() Method

En esta sección, vamos a usar el key parámetro y personalizar la ordenación.

Aquí, mod5() es una función que toma un número x, y devuelve el resto cuando el número x se divide por 5.

def mod5(x):
  return x % 5 

Y nos gustaría usar la función anterior como el key.

Ahora, ejecute la siguiente celda de código.

nums = [25,13,6,17,9]
nums.sort(key = mod5)
print(nums)

# Output: [25, 6, 17, 13, 9]

Tómese un minuto para analizar la salida.

Observe cómo en lugar de la clasificación regular, ahora está personalizando su clasificación de acuerdo con el key cual es mod5.

  • El número que deja el residuo mínimo al dividirlo por 5 ahora es el primero.
  • Y el número que deja el resto más grande cuando se divide por 5 es el último elemento en la lista ordenada.

Para verificar que este sea el caso, ejecute el siguiente fragmento de código.

nums = [25,13,6,17,9]

for num in nums:
  print(f"{num} leaves remainder {num%5} when divided by 5")

# Output
25 leaves remainder 0 when divided by 5
13 leaves remainder 3 when divided by 5
6 leaves remainder 1 when divided by 5
17 leaves remainder 2 when divided by 5
9 leaves remainder 4 when divided by 5

5 divide exactamente a 25 y el resto es 0. Así que ese es el primer elemento en la lista ordenada. 6 deja un resto 1, por lo que es el segundo elemento, y así sucesivamente. 9 deja el resto 4 cuando se divide por 5, y es el último elemento en la lista ordenada.

En lugar de definir una función separada, también podría usar funciones lambda. En Python, las lambdas son funciones anónimas de una línea. argumentos lambda: expresión devuelve el expresión computado en el args.

Ahora, reescribamos la ordenación anterior usando la expresión lambda, como se muestra a continuación.

nums = [25,13,6,17,9]
nums.sort(key = lambda x:x%5)
print(nums)

# Output: [25, 6, 17, 13, 9]

Hasta ahora, has aprendido a ordenar una lista de números. A continuación, veamos cómo puede ordenar una lista de cadenas en Python.

How to Sort Python List in Alphabetical Order

En esta sección, aprenderá a ordenar una lista de cadenas, con ejemplos inspirados en Harry Potter. ✨

python-ordenar-lista

En nuestro ejemplo, students es una lista de estudiantes en Hogwarts. Y nos gustaría clasificarlos en el orden alfabético de sus nombres.

Al clasificar una lista de cadenas, la clasificación predeterminada es alfabética.

students = ["Harry","Ron","Hermione","Draco","Cedric"]

Imprimamos la lista ordenada para verificar el resultado de la clasificación.

students.sort()
print(students)

# Output
['Cedric','Draco', 'Harry', 'Hermione', 'Ron']

How to Sort Python List in Reverse Alphabetical Order

Para ordenar la lista en orden alfabético inverso, configure reverse = True, como se muestra en el fragmento de código a continuación.

students.sort(reverse = True)
print(students)

# Output
['Ron', 'Hermione', 'Harry', 'Draco', 'Cedric']

A partir de la salida, puede ver que la lista se ha ordenado en orden inverso.

How to Use key Parameter Customize Sort

En esta sección, vamos a personalizar la ordenación usando el opcional key parámetro.

Considere la siguiente lista, houses.

houses = [
            {1:"Draco","house":"Slytherin"},
            {2:"Harry","house":"Gryffindor"},
            {3:"Cedric","house":"Hufflepuff"}
         ]

Aquí, houses es una lista de diccionarios. Cada diccionario contiene dos pares clave-valor, uno que denota los nombres de los estudiantes y el otro la casa a la que pertenecen.

Ahora, nos gustaría ordenar esta lista casas en el capítulo respecto a la orden alfabético de las casas pertenecen a.

Como ya habrás adivinado, deberíamos configurar el key parámetro a la casa de los estudiantes particulares.

Para recuperar la casa de cada estudiante, puede definir una función returnHouse(), Como se muestra abajo.

def returnHouse(student):
  return student['house']

Esta función devuelve la casa a la que pertenece el estudiante en particular.

Ahora, puedes llamar al sort() en la lista de casas, como se muestra.

houses.sort(key=returnHouse)

En el resultado a continuación, observe cómo la lista está ordenada por la casa y no por los nombres de los estudiantes. Por eso tenemos a Gryffindor, Hufflepuff y Slytherin, en orden alfabético.

print(houses)

# Output
[{2: 'Harry', 'house': 'Gryffindor'}, 
{3: 'Cedric', 'house': 'Hufflepuff'}, 
{1: 'Draco', 'house': 'Slytherin'}]

Para definir el key parámetro en consecuencia, también podría usar una función lambda. Para cada elemento de la lista, esta función devuelve la casa para ese elemento de la lista.

▶ Ejecute la siguiente celda de código para verificar esto.

houses.sort(key=lambda student:student["house"])
print(houses)

# Output
[{2: 'Harry', 'house': 'Gryffindor'}, 
{3: 'Cedric', 'house': 'Hufflepuff'}, 
{1: 'Draco', 'house': 'Slytherin'}]

En todos los ejemplos hasta ahora, ha utilizado el sort() método en una lista. Y ahora sabes que modifica la lista original.

¿Qué sucede si desea conservar la lista original tal como está pero obtener una copia ordenada de la lista?

Bueno, en Python, puedes usar el sorted() función para hacer esto.

Syntax of Python sorted() Function

El sorted() La función toma una lista o cualquier colección como argumento. Y devuelve una copia ordenada de la lista, y la lista original no se modifica.

La sintaxis de Python sorted() la función es:

<sorted_copy> = sorted(<list>, reverse = True | False, key = <func>)

Observe cómo la sintaxis es muy similar a la sort() método que vimos antes.

  • <list> es cualquier objeto de lista de Python válido y es un Requisitos parámetro.
  • reverse y key están opcional parámetros

Nota:: A diferencia del sort() método que actúa sólo sobre listas, sorted() La función se puede usar para ordenar cualquier iterable de Python, como listas, cadenas y diccionarios.

How to Sort Python List Using sorted() Function

#1. En este ejemplo, nums es una lista de números.

Puedes llamar al sorted() funcionar con nums como el argumento. Y asignarlo a la lista. sorted_nums1.

nums = [25,13,6,17,9]
sorted_nums1 = sorted(nums)
print(sorted_nums1)

# Output: [6, 9, 13, 17, 25]

En el resultado de arriba, puedes ver que nums se ha ordenado en orden ascendente de forma predeterminada.

Además, observe que la lista original nums no se modifica—porque sorted() devuelve una nueva lista. Esto se verifica a continuación.

print(nums)
 # Output: [25, 13, 6, 17, 9]

#2. Ahora, establezca el parámetro opcional reverse a True y obten sorted_nums2.

Como se muestra en la celda de código a continuación, sorted_nums2 es una nueva lista con los elementos ordenados en orden descendente.

sorted_nums2 = sorted(nums,reverse = True)
print(sorted_nums2)

# Output: [25, 17, 13, 9, 6]

#3. En este ejemplo, trabajemos con una lista de cadenas.

Al igual que con los ejemplos anteriores, llamando al sorted() La función devuelve una nueva lista. Y los elementos se ordenan en orden alfabético.

fruits = ['pears','strawberry','apple','pineapple','blueberry']
sorted_fr1 = sorted(fruits)
print(sorted_fr1)

# Output:
['apple', 'blueberry', 'pears', 'pineapple', 'strawberry']

#4. Ahora, personalicemos la ordenación usando el opcional key parámetro. Selecciona el key a len. Esto ordenará la lista según la longitud de las cadenas.

Nota: En Python, el integrado len() La función acepta cualquier iterable, como listas, cadenas, tuplas, etc. Y devuelve la longitud del iterable.

La cadena con la longitud más corta aparece primero en la lista ordenada y la cadena más larga aparece al final de la lista ordenada.

fruits = ['pear','strawberry','apple','pineapple','blueberry']
sorted_fr2 = sorted(fruits,key=len)
print(sorted_fr2)

# Output:
['pear', 'apple', 'pineapple', 'blueberry', 'strawberry']

En la salida de arriba, pera es la cuerda más corta, y fresa es la cadena más larga. 

Python sort() Method vs. sorted() Function

Hasta ahora, has aprendido a usar el sort() método así como el sorted() función. En esta sección, vamos a enumerar las diferencias entre estos dos métodos.

Método Python .sort()Función Python sorted ()
Ordena la lista en su lugar: modifica la lista originalDevuelve una nueva lista ordenada
Funciona solo con listas de PythonFunciona con iterables de Python, como listas, cadenas y otras colecciones.
Tiene tipo de retorno de NoneDevuelve una copia ordenada del iterable.

Resumiendo 👩‍🏫

Espero que hayas encontrado útil este tutorial de listas de Python.

Resumamos rápidamente lo que hemos cubierto.

  • Utilice la herramienta list.sort(reverse = True | False, key = ) con el opcional marcha atrás y clave parámetros para ordenar una lista en su lugar.
  • Utilice la herramienta sorted(list, reverse = True | False, key = ) para obtener una copia ordenada de la lista.

Ahora que ha aprendido a ordenar listas de Python, aprenda sobre lista de comprensión en Python. O también podrías aprender como manejar archivos or trabajar con archivos JSON en Python.

Puede probar los ejemplos dados anteriormente en el Compilador de Python en línea de Geekflare.

Gracias a nuestros patrocinadores
Más lecturas interesantes sobre el desarrollo
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder