WORDPRESS

Cómo ordenar una lista en Python

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

En Python puedes usar escribe() método para ordenar la lista en el lugar.O puede usar el incorporado clasificar() La función obtiene una copia ordenada de la lista.

En este tutorial aprenderás:

  • sintaxis sort() Métodos y sorted() Función
  • Ejemplo de código para ordenar una lista en orden ascendente y descendente
  • Usar clasificación personalizada key Alcance
  • diferencia entre sort() Comparado sorted()

¡Empecemos! 👩🏽‍💻

Sintaxis del método sort() de Python

Esta sort() Los métodos operan en las listas de Python. Ordena la lista apropiadamente y modifica la lista original.

sintaxis de python sort() el camino es:

.sort(reverse = True | False, key = )

Ahora analicemos la gramática anterior.

  • es cualquier objeto de lista de Python válido.
  • reverse es un Opcional Acepta un argumento de Verdadero o Falso.
  • El valor predeterminado es reverseFalse, y la lista se ordena en orden ascendente.Dar True Ordena la lista en orden descendente.
  • key también una Opcional parámetro establecido en .
  • Puede ser una función integrada o una función definida por el usuario.

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

Cómo ordenar una lista de Python en orden ascendente

Lista de verificación de consideración numsPara ordenar la lista en orden ascendente, puede llamar sort() el método servirá.

▶ Ejecute el siguiente fragmento de código.

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

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

lista nums Ya ordenados en orden ascendente, modificando la lista original.Se llama ordenar en el lugar.

Cómo ordenar una lista de Python en orden descendente

Para ordenar la lista en orden descendente, configure reverse llegar TrueComo sigue.

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.

Cómo usar la clave en el método Python sort ()

En esta sección, vamos a usar key parámetros y clasificación personalizada.

aquí, mod5() es una función que acepta números xy devuelve el resto al contar x Dividir por 5.

def mod5(x):
  return x % 5 

Queremos usar la función anterior como 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 momento para analizar la salida.

Observe cómo ahora ordena por convención en lugar de convención key Esto es mod5.

  • El número que deja el menor resto al dividir por 5 ahora viene primero.
  • 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 si este es 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 se divide exactamente por 25 con un resto de 0. Así que este es el primer elemento en la lista ordenada. 6 deja un resto de 1, por lo que es el segundo elemento, y así sucesivamente. 9 dividido por 5 tiene un resto de 4, que es el último elemento de la lista ordenada.

En lugar de definir una función separada, use función lambdaEn Python, una lambda es una función anónima de una línea. argumentos lambda: expresiones regreso Rápido Calculado en parámetro.

Ahora, reescribamos el orden anterior usando una 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 ordenar una lista de cadenas en Python.

Cómo ordenar una lista de Python alfabéticamente

En esta sección, aprenderá a ordenar una lista de cadenas, un ejemplo inspirado en Harry Potter. ✨

Cómo ordenar una lista en Python 2

En nuestro ejemplo, students es una lista de estudiantes en Hogwarts. Queremos ordenarlos alfabéticamente por su nombre.

Al ordenar una lista de cadenas, la ordenación predeterminada es alfabética.

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

Imprimamos la lista ordenada para verificar el resultado ordenado.

students.sort()
print(students)

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

Cómo ordenar una lista de Python en orden alfabético inverso

Para ordenar la lista en orden alfabético inverso, configure reverse = Truecomo 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 está ordenada en orden inverso.

Cómo personalizar la clasificación con parámetros clave

En esta sección, usemos la ordenación personalizada opcional key Alcance.

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 representa el nombre del estudiante y el otro que representa la casa a la que pertenece.

Ahora, queremos ordenar esta lista casas en el interior orden alfabético de las casas Ellos pertenecen.

Como ya habrás adivinado, deberíamos establecer key Parámetros a la casa de un estudiante específico.

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

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

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

Ahora puedes llamar sort() Los métodos en la lista de viviendas, como se muestra.

houses.sort(key=returnHouse)

En el resultado a continuación, observe cómo la lista está ordenada por casa en lugar de por nombre de estudiante. 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'}]

definición key También puede utilizar una función lambda para el parámetro correspondiente. Para cada elemento de la lista, esta función devuelve la casa del 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 has usado sort() métodos en la lista. Ahora ya sabes que modifica la lista original.

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

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

Sintaxis de la función Python sorted()

Esta sorted() La función acepta una lista o cualquier colección como parámetro. Devuelve una copia ordenada de la lista: la lista original no se ha modificado.

sintaxis de python sorted() La función es:

 = sorted(, reverse = True | False, key = )

Tenga en cuenta la sintaxis con sort() El método que vimos antes.

  • es cualquier objeto de lista de Python válido y es requerido Alcance.
  • reverse y keyOpcional parámetro

notas: no como sort() métodos que actúan solo en listas, sorted() Las funciones se pueden usar para ordenar cualquier iterable de Python, como listas, cadenas y diccionarios.

Cómo usar la función sorted() para ordenar una lista de Python

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

Puedes llamar sorted() función y nums como 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 la salida anterior se puede ver nums Ordenado en orden ascendente por defecto.

Además, tenga en cuenta la lista original nums no modificado – porque sorted() Devolver una nueva lista. Esto se verifica a continuación.

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

#2. Ahora, establezca parámetros opcionales reverse llegar True y obten sorted_nums2.

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

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

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

#3. En este ejemplo, usemos una lista de cadenas.

Como en el ejemplo anterior, llama sorted() La función devuelve una nueva lista. Y los artículos están ordenados alfabéticamente.

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

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

#4. Ahora, usemos la ordenación personalizada opcional key Alcance.configurar key llegar lenEsto ordenará la lista según la longitud de la cadena.

notas: En Python, incorporado len() La función acepta cualquier objeto iterable como listas, cadenas, tuplas, etc. Devuelve la longitud del iterable.

La cadena con la longitud más corta aparece en la parte superior de 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 anterior, pera es la cuerda más corta, y fresa es la cadena más larga.

Método Python sort() y función sorted()

Hasta ahora has aprendido a usar sort() método y sorted() Función. En esta sección, enumeremos las diferencias entre estos dos enfoques.

Método Python .sort() Función ordenada () de Python
Ordenar la lista en su lugar – modificar la lista original devuelve una nueva lista ordenada
Solo para listas de Python Funciona con iterables de Python, como listas, cadenas y otras colecciones.
El tipo de retorno es None Devuelve una copia ordenada iterable

Resumen 👩‍🏫

Espero que este tutorial de la lista de Python te haya sido útil.

Resumamos rápidamente lo que hemos cubierto.

  • utilizar list.sort(reverse = True | False, key = ) con opcional contrarrestar y llave Argumentos para la ordenación in situ de la lista.
  • utilizar sort(lista, inverso=verdadero|falso, claves= ) Obtenga una copia ordenada de la lista.

Ahora que aprendió a ordenar listas de Python, obtenga información sobre la comprensión de listas en Python. O puede aprender a trabajar con archivos en Python o trabajar con archivos JSON.

Puede probar los ejemplos dados anteriormente en el compilador Geekflare Online Python.

Artículo Recomendado:  ¿Cómo instalar Nginx en Ubuntu o CentOS/RHEL?

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *