Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

HM2 ES 2- sort lista dizionari, secondo piu' key

AdrianH (840 points)
4 8 17
in Info sul corso e sugli esami by (840 points)
Salve, ho bisogno di aiuto per l'ES2:

Premessa

ho gia la lista di dizionari giusta e fatta

devo ordinarla,con sorted, come richiesto utilizzando come key:

I1,a parita' di I1 si usa I2 e, a parita' di I2 si usa la parola

questo l'ho capito, so che devo usare lista.sort o sorted,ho usato itemgetter anche ,che e' piu veloce.

ma come faccio a fare il sort con key multiple che a parita' di key usano la seguente?(cioe' da key=I1 a key=I2 se I1 sono uguali)
501 views
closed

2 Answers

Best answer
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
selected by
Si può risolvere tutto con un unica istruzione.

Devi valorizzare la key del metodo sort applicato alla lista di dizionari.

I valori che vuoi ordinare vanno inseriti nella funzione lambda della key all'interno di una tupla, uno di seguito all'altro.

Il reverse lo fai anteponendo il segno - (meno) al valore che vuoi invertire.

Se vai a vedere le registrazioni delle esercitazioni di laboratorio su twiky potresti trovare degli argomenti 'illuminanti'
AdrianH (840 points)
4 8 17
by (840 points)
Oh, ok grazie, ora ci provo
AdrianH (840 points)
4 8 17
by (840 points)
Allora, ti informo che funziona con lambda, con le key una dopo l'altra, ti ringrazio
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
se mi ringrazi scegliendo la risposta come 'best answer' ti ringrazio anche io :-D
p
pietrobrega (4460 points)
6 13 42
by (4.5k points)
Usa una funzione lambda che restituisce una lista contenente gli elementi nell'ordine giusto. Per quanto riguarda ordinamento decrescente se l'elemento key è un numero basta che lo cambi di segno, mentre per le stringhe credo che si debba fare un sort/sorted a parte usando l'attributo reverse.
T
Tommaso (1480 points)
3 8 22
by (1.5k points)
Io ho un comportamento "strano" con le lambda, nel senso funziona l'ordinamento decrescente su I1, l'ordinamento lessicografico sulla parola, ma fallisce quello decrescente su I2. Utilizzo un'unica lambda expression per tutti e tre gli ordinamenti. Avete idea di dove sta il problema???