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.

