Python Lista sort() con ejemplos
¿Qué es el método sort() en Python?
Función de clasificación en Python ayuda a ordenar una lista en orden ascendente o descendente. Se puede utilizar para ordenar una lista numérica, tuplas y listas de cadenas. No crea una lista separada sino que modifica u ordena el original.
Sintaxis del método Sort en Python
La función de ordenación tiene la siguiente sintaxis, como se detalla a continuación: –
List.sort(key=…, reverse=…)
La función de clasificación tiene dos parámetros opcionales, que se enumeran a continuación: –
- 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']
Explicación del código:
- 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 de la expresión lambda:
Sintaxis:
Lambda arguments: expression
La sintaxis anterior es equivalente al siguiente código Python:
def name (arguments): return expression
A continuación se muestra un ejemplo de una tupla y una función personalizada para ilustrar cómo una función de clasificación con parámetros clave ayuda a ordenar los elementos de 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)]
Explicación del código:
- 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 incorporada que determina la longitud del artículo. La longitud determinada se puede utilizar para la indexación en la función de clasificación. Para hacer esto, asignamos a Len al 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 Código:
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']
Explicación del código:
- 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 una longitud de 4, que están ordenadas en primer lugar 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 clasificación como se muestra a continuación: –
Python Código:
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 puede utilizar una función definida por el usuario como parámetro clave para ordenar una lista. Aquí hay un ejemplo: -
Python Código:
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}]
Explicación del código:
- 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
Antes de resumir las diferencias, entendamos la sintaxis del método Sorted.
Python Sintaxis:
sorted (list_name, reverse=…., key=..)
Explicación del código:
- 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 como se muestra a continuación: –
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
Explicación del código:
- 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 enumeran los puntos sobre similitudes y diferencias clave: –
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)]
Explicación del código:
- 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 una mejor trazabilidad y una gestión eficaz de los datos.
Conclusión
- La función de clasificación ayuda a ordenar una lista numérica y de cadenas en Python.
- También puede ayudar a clasificar tuplas.
- Reverse y key son parámetros opcionales de la función.
- Si es necesario tener una lista separada y al mismo tiempo tener la lista original, entonces se debe utilizar la función ordenada; de lo contrario, se debe utilizar la función de ordenación para lograr una utilización optimizada de la memoria.