Ordina con Lambda in Python

Manav Narula 18 luglio 2021
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.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

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

Articolo correlato - Python Sort