Python Lista sort() con ejemplos
⚡ Resumen inteligente
Python La función `list sort()` ordena los elementos de una lista en su lugar, de forma ascendente por defecto o descendente mediante el parámetro `reverse`, mientras que una función opcional `key` ordena según criterios personalizados como la longitud, los campos de tupla o funciones definidas por el usuario.

¿Qué es el método sort() en Python?
La función sort() en Python Ayuda a ordenar una lista en orden ascendente o descendente. Se puede usar para ordenar listas numéricas, tuplas y listas de cadenas. No crea una lista nueva, sino que modifica u ordena la original.
Sintaxis del método Sort en Python
La función de ordenación tiene la siguiente sintaxis:
List.sort(key=…, reverse=…)
La función de ordenación tiene dos parámetros opcionales, a saber:
- Clave: – Se utiliza para ordenar una función según un criterio de clasificación.
- Reverse– Toma el valor como verdadero o falso. Si es verdadero, esta función personalizada ordena la lista en orden descendente.
Ordenar una lista en orden ascendente utilizando el método Ordenar en Python
In Python, la función de clasificación, de forma predeterminada, ordena cualquier lista en orden ascendente. Una lista en orden ascendente tiene el valor más bajo en el lado izquierdo y el valor más alto en el lado derecho.
Ejemplo:
Python código:
base_list=["Google","Reliance","Guru99","Content","Syntax"] base_list.sort() print("the base list after sorting is",base_list)
Salida:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Code Explicación:
- La lista anterior es una lista de cadenas definida aleatoriamente.
- La función de clasificación de Python ayuda a ordenar la lista aleatoria en orden ascendente, con la longitud más baja de la palabra en el lado izquierdo y la longitud más alta de la palabra en el lado derecho.
Ordenar una lista en orden descendente
La función de clasificación también permite ordenar una lista en orden descendente. Se puede definir como el orden. donde la lista comienza con el valor más alto y termina con el valor más bajo.
El parámetro inverso de la función de clasificación se asigna como verdadero para ordenar una lista en orden descendente.
Veamos el siguiente ejemplo:
Python código:
base_list=[100,600,400,8000,50] base_list.sort() print("the base list after sorting is",base_list) # Reverse Order base_list.sort(reverse=True) print("the base list after REVERSE sorting is",base_list)
Salida:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Nota: Asegúrese de que la asignación de la palabra "Verdadero" al parámetro inverso comience con una "T" mayúscula para evitar errores de tiempo de ejecución.
Ordenar una lista de tuplas usando el método Ordenar en Python
Python Tuples son colecciones de elementos inmutables que siguen una secuencia ordenada. PythonLa función de clasificación de puede usarse para ordenar una lista de tuplas usando una función personalizada y una expresión lambda.
Se puede crear una función personalizada sin nombre y representarla mediante una expresión lambda. A continuación se muestra la sintaxis para expresiones lambda:
Sintaxis:
Lambda arguments: expression
La sintaxis anterior es equivalente al siguiente código Python:
def name (arguments): return expression
Aquí hay un ejemplo de una tupla y una función personalizada para ilustrar cómo una función de ordenación con parámetros clave ayuda a ordenar los elementos en una tupla:
Python código:
base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)] def get_key(base_list): return base_list[2] base_list.sort(key=get_key,reverse=True) print("The change in base list is as follows",base_list)
Salida:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Code Explicación:
- El parámetro inverso se define como verdadero para ordenar la tupla en orden descendente.
- La función personalizada toma el segundo elemento de la tupla.
- Esto se utiliza como clave de la función de clasificación.
Veamos el siguiente ejemplo que utiliza la expresión lambda:
Python código:
base_list = [('Alto', 2020, 500), ('MSFT', 2022, 300), ('Guru99', 2019, 1070)] base_list.sort(key=lambda base_list:base_list[2],reverse=True) print("The change in base list is as follows",base_list)
Salida:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Explicación:
- La expresión lambda le ayuda a ordenar los elementos de la tupla de mayor a menor con la clave como segundo elemento de la tupla.
- El programa comprobará el valor más alto del segundo elemento de la tupla.
Ordenar elementos de la lista usando Len como parámetro clave
Len es una función integrada que determina la longitud del elemento. La longitud determinada se puede utilizar para la indexación en la función de ordenación. Para ello, asignamos Len a la Python parámetro clave de la función de clasificación.
Las siguientes Python El código ilustra cómo utilizar la función Len con la función de clasificación.
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len) print("The sorted list based on length:",base_list)
Salida:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Code Explicación:
- La longitud del elemento se convierte en un índice para que el parámetro clave organice la lista en orden ascendente.
- La función Len estima la longitud de cada elemento presente en la lista base.
- Mantiene el elemento más corto en el lado izquierdo y el elemento más grande en el lado derecho.
- Aquí, las palabras alto y java tienen longitudes de 4, que están dispuestas primero en la lista, seguidas de Guru99, que tiene una longitud de 6.
Este ejemplo ilustra el concepto del parámetro inverso en la función de ordenación, como se muestra a continuación:
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len,reverse=True) print("The sorted list based on length:",base_list)
Salida:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Ordenar elementos de la lista utilizando la función definida por el usuario como parámetro clave
También puedes usar una función definida por el usuario como parámetro clave para ordenar una lista. Aquí tienes un ejemplo:
Python Code:
base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)
Salida:
The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]
Code Explicación:
- Se crea una función definida por el usuario para devolver el año.
- El parámetro clave toma como criterio una función definida por el usuario.
- La función de clasificación organizará la lista en orden ascendente según el valor del elemento "año".
Diferencia entre el método de clasificación y el método ordenado en Python
Tras analizar los ejemplos anteriores, resulta útil comparar directamente las dos herramientas de ordenación. Antes de resumir las diferencias, comprendamos la sintaxis del método Sorted.
Python Sintaxis:
sorted (list_name, reverse=…., key=..)
Code Explicación:
- La función ordenada ordena la lista en orden ascendente o descendente.
- La función acepta tres parámetros, de los cuales dos parámetros son de tipo opcional y un parámetro es de tipo requerido.
- El parámetro list_name es obligatorio cuando se utiliza el método Ordenado.
- El método Ordenado puede tomar cualquier tipo de lista iterable como entrada.
- Los parámetros clave y los parámetros inversos son parámetros opcionales según el método ordenado en Python.
A continuación se muestra un ejemplo del uso de la función ordenar y ordenar en Python:
Python código:
#Use of the Sorted method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=sorted(Base_list) print("the New list using sorted method is",New_list) #Use of the Sort method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=Base_list.sort() print("the New list using sort method is",New_list)
Salida:
the original list is [11, 10, 9, 8, 7, 6] the new list using the sorted method is [6, 7, 8, 9, 10, 11] the original list is [11, 10, 9, 8, 7, 6] the new list using the sort method is None
Code Explicación:
- La lista original se pasa como parámetro obligatorio para la función ordenada.
- El método Ordenado devuelve una nueva lista además de la lista original.
- Dado que no se pasan parámetros adicionales al método ordenado, la nueva lista se ordena de forma predeterminada en orden ascendente.
- La función de clasificación no crea ninguna lista nueva.
A continuación se detallan los puntos clave sobre similitudes y diferencias:
| función ordenada | Función de clasificación |
|---|---|
| Función ordenada en Python es una función incorporada que toma list_name como parámetro obligatorio. | La función de clasificación no toma la lista original como parámetro. |
| El método ordenado devuelve una nueva lista | La función de clasificación no devuelve una nueva lista |
| La función ordenada debe usarse para listas iterables | La función de clasificación debe usarse para listas no iterables. |
| No modifica la lista original y nos permite conservar los datos originales. | La función de clasificación modifica la función original y, por tanto, ocupa menos espacio de memoria. |
¿Cuándo utilizar el método ordenado o el método de clasificación?
Tomemos un ejemplo que requiere ordenar los datos de la carrera. El programa utiliza el número de dorsal y el tiempo necesario en segundos para terminar la carrera.
Python código:
from collections import namedtuple Base = namedtuple('Runner', 'bibnumber duration') blist = [] blist.append(Base('8567', 1500)) blist.append(Base('5234', 1420)) blist.append(Base('2344', 1600)) blist.append(Base('2342', 1490)) blist.append(Base('23444', 1620)) blist.append(Base('6674', 1906)) print("original list",blist) blist.sort(key=lambda x: getattr(x, 'duration')) top_five_result = blist[:5] print("Results using sort function",top_five_result) r_blist=sorted(blist,key=lambda x: getattr(x, 'duration')) top_five_result = r_blist[:5] print("Results using sorted function",top_five_result)
Salida:
original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)] Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)] Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]
Code Explicación:
- La lista base se ordena utilizando tanto la función de clasificación como la función de clasificación.
- La lista base se pierde cuando se aplica la función de clasificación.
- La función de clasificación no debe aplicarse al conjunto de datos original. Debe utilizarse cuando exista una versión copia del conjunto de datos original.
- La función Ordenada conserva la lista original. No lo anula.
- Esto ofrece mejores tracCapacidad y gestión eficaz de datos.

