Ordina elenco di oggetti in Python
-
Usa il metodo
list.sort()
per ordinare la lista di oggetti in Python -
Usa la funzione
sorted()
per ordinare la lista di oggetti in Python
Gli elenchi Python non sono omogenei, il che li rende diversi dagli altri tipi di dati forniti in Python.
L’indicizzazione di un elenco inizia con 0 come primo indice e viene eseguita in modo sequenziale. Tutti gli elementi della lista hanno il loro posto definito a causa della quale è consentita la duplicazione nelle liste.
Questo tutorial introdurrà diversi metodi per ordinare la lista di oggetti in Python.
Usa il metodo list.sort()
per ordinare la lista di oggetti in Python
Il metodo list.sort()
ordina tutti gli elementi della lista in ordine crescente o decrescente.
Contiene due parametri opzionali, key
e reverse
. Il parametro key
, proprio come suggerisce il nome, funge da chiave per il processo di smistamento. Il parametro reverse
viene utilizzato per determinare l’ordinamento. Se il valore di reverse
è True
, l’ordinamento avviene in ordine inverso/decrescente.
Tuttavia, la funzione funziona bene senza l’uso dei suddetti parametri opzionali.
Il codice seguente usa il metodo list.sort()
per ordinare la lista di oggetti in 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)
Produzione:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
[{Nik, Banking, 21}, {Lucien, Finance, 19}, {Elijah, IT, 20}]
Per produrre il valore per il parametro key
, possiamo usare operator.attrgetter()
.
attrgetter()
è importato dal modulo operator
ed è utilizzato per restituire un oggetto richiamabile che recupera l’attributo dal suo operando.
Il codice seguente utilizza il metodo list.sort()
e operator.attrgetter()
per ordinare la lista di oggetti in 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)
Produzione:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
Usa la funzione sorted()
per ordinare la lista di oggetti in Python
Python fornisce una funzione sorted()
incorporata che può servire come alternativa alla funzione list.sort()
.
Mentre list.sort()
non restituisce alcun valore specifico e apporta modifiche all’elenco originale, la funzione sorted()
restituisce la lista ordinato invece di apportare modifiche all’elenco originale.
La funzione sorted()
contiene solo reverse
come parametro opzionale.
Il codice seguente usa la funzione sorted()
per ordinare la lista di oggetti in 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)
Produzione:
[{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.
LinkedInArticolo correlato - Python List
- Converti un dizionario in una lista in Python
- Rimuovi i duplicati dall'lista in Python
- Rimuovi tutte le occorrenze di un elemento da una lista in Python
- Ottieni la media di una lista in Python
- Qual è la differenza tra i metodi di elencazione, aggiungere ed estendere
- Come convertire una lista in stringa in Python