Lambda nel sorting

T
THESHADOW2030 (1070 points)
2 7 15
asked Feb 14, 2020 in Programmare in Python by THESHADOW2030 (1,070 points)
recategorized Feb 14, 2020 by andrea.sterbini
Salve, ho visto che spesso il prof nelle soluzione fa uso delle funzioni lambda nel sorting. Fin qua nessun problema. Ma certe volte fa cose del tipo key=lambda x: (-len(x),x)). Perche mette due valori dentro una parentesi? Scusate la domanda che puo sembrare ovvia
319 views

2 Answers

andrea.sterbini (172780 points)
513 935 1789
answered Feb 14, 2020 by andrea.sterbini (172,780 points)
a
a.pietroluongo (11250 points)
15 38 131
answered Feb 14, 2020 by a.pietroluongo (11,250 points)

nell'esempio penso che ti chiede di ordinare rispetto alla lunghezza decrescente e poi rispetto all'elemento, quindi per ogni elemento viene costruita la tupla (-len(elemento), elemento)).

T
THESHADOW2030 (1070 points)
2 7 15
commented Feb 14, 2020 by THESHADOW2030 (1,070 points)
Perciò se voglio ordinare in base a più criteri (ad esempio prima per ordine di lunghezza crescente, poi a parità di lunghezza devo vedere il primo carattere e a parità di primo carattere vedo il secondo devo fare lambda x: (len, x[0], x[1]) ho capito bene?
a
a.pietroluongo (11250 points)
15 38 131
commented Feb 14, 2020 by a.pietroluongo (11,250 points)
edited Feb 14, 2020 by a.pietroluongo

lambda x: (len(x), x)  

a parità confronta la stringa  (il confronto  è già in ordine lessicografico (da sx a dx))

T
THESHADOW2030 (1070 points)
2 7 15
commented Feb 14, 2020 by THESHADOW2030 (1,070 points)
Ah, va bene. Grazie