Ordenar lista de objetos en Python
-
Utilice el método
list.sort()
para ordenar la lista de objetos en Python -
Utilice la función
sorted()
para ordenar la lista de objetos en Python
Las listas de Python no son homogéneas, lo que las hace diferentes de los otros tipos de datos proporcionados en Python.
La indexación de una lista comienza con 0 como primer índice y se realiza de forma secuencial. Todos los elementos de la lista tienen su lugar definido por lo que se permite la duplicación en las listas.
Este tutorial presentará diferentes métodos para ordenar la lista de objetos en Python.
Utilice el método list.sort()
para ordenar la lista de objetos en Python
El método list.sort()
ordena todos los elementos de la lista en orden ascendente o descendente.
Contiene dos parámetros opcionales, key
y reverse
. El parámetro key
, como sugiere su nombre, sirve como clave para el proceso de clasificación. El parámetro reverse
se utiliza para determinar el orden de clasificación. Si el valor de reverse
es True
, entonces la clasificación se produce en orden inverso / descendente.
Sin embargo, la función funciona bien sin el uso de los parámetros opcionales mencionados anteriormente.
El siguiente código usa el método list.sort()
para ordenar la lista de objetos en Python.
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return "{" + self.name + ", " + self.dept + ", " + str(self.age) + "}"
if __name__ == "__main__":
emps = [
BankEMP("Elijah", "IT", 20),
BankEMP("Nik", "Banking", 21),
BankEMP("Lucien", "Finance", 19),
]
# sort list by `name` in the natural order
emps.sort(key=lambda x: x.name)
print(emps)
# sort list by `name` in reverse order
emps.sort(key=lambda x: x.name, reverse=True)
print(emps)
Producción :
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
[{Nik, Banking, 21}, {Lucien, Finance, 19}, {Elijah, IT, 20}]
Para producir el valor del parámetro key
, podemos usar operator.attrgetter()
.
attrgetter()
se importa del módulo operator
y se utiliza para devolver un objeto invocable que obtiene el atributo de su operando.
El siguiente código usa el método list.sort()
y operator.attrgetter()
para ordenar la lista de objetos en Python.
from operator import attrgetter
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return "{" + self.name + ", " + self.dept + ", " + str(self.age) + "}"
if __name__ == "__main__":
emps = [
BankEMP("Elijah", "IT", 20),
BankEMP("Nik", "Banking", 21),
BankEMP("Lucien", "Finance", 19),
]
# sort list by name in the natural order using 'attrgetter()'
emps.sort(key=attrgetter("name"))
print(emps)
Producción :
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
Utilice la función sorted()
para ordenar la lista de objetos en Python
Python proporciona una función incorporada sorted()
que puede servir como alternativa a la función list.sort()
.
Mientras que list.sort()
no devuelve ningún valor específico y realiza cambios en la lista original, la función sorted()
devuelve la lista ordenada en lugar de realizar modificaciones a la lista original.
La función sorted()
solo contiene reverse
como parámetro opcional.
El siguiente código usa la función sorted()
para ordenar la lista de objetos en Python.
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return "{" + self.name + ", " + self.dept + ", " + str(self.age) + "}"
if __name__ == "__main__":
emps = [
BankEMP("Elijah", "IT", 20),
BankEMP("Nik", "Banking", 21),
BankEMP("Lucien", "Finance", 19),
]
# sort list in natural order of name using sorted() function
sort1 = sorted(emps, key=lambda x: x.name)
print(sort1)
Producción :
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedInArtículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python