Ordina con Lambda in Python
In Python, abbiamo le funzioni sorted()
e sort()
disponibili per ordinare una lista.
Queste funzioni ci consentono di ordinare la lista nell’ordine richiesto. Per impostazione predefinita, possiamo ordinare la lista in ordine decrescente o crescente.
Possiamo anche usare un parametro in queste funzioni, che è il parametro key
. Ci permette di creare il nostro ordinamento personale. Possiamo usare le funzioni lambda
in questo parametro, permettendoci di creare la nostra funzione a riga singola.
Per esempio,
lst = ["id01", "id10", "id02", "id12", "id03", "id13"]
lst_sorted = sorted(lst, key=lambda x: int(x[2:]))
print(lst_sorted)
Produzione:
['id01', 'id02', 'id03', 'id10', 'id12', 'id13']
Nell’esempio precedente, abbiamo una lista di ID in cui ogni numero è preceduto dalle lettere id
. Nel parametro key
, specifichiamo una funzione lambda
specificando che dobbiamo ignorare i primi due caratteri (id
) e ordinare la lista.
Ci sono anche altri modi in cui possiamo usare le funzioni lambda
per l’ordinamento.
Per esempio,
lst = [("Mark", 1), ("Jack", 5), ("Jake", 7), ("Sam", 3)]
lst_sorted = sorted(lst, key=lambda x: x[1])
print(lst_sorted)
Produzione:
[('Mark', 1), ('Sam', 3), ('Jack', 5), ('Jake', 7)]
Nell’esempio sopra, abbiamo una lista di tuple. La tupla è composta da un nome e un numero. Nella funzione lambda
, specifichiamo la funzione da ordinare in base al secondo elemento della tupla, cioè il numero.
Nota che possiamo cambiare l’ordine in discendente usando il parametro reverse
e impostandolo su True
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn