Ho un problema con l'ordinamento della tabella alla fine del es2.
Sto vedendo varie soluzioni online, ma in nessuna riesco a trovare una soluzione dunque mi chiedo, è possibile inserire nella key del sorted più criteri?
Pongo un esempio per chiarirmi.
Ho questa lista di dizionari:
list=[{'name':'AAAA', 'age':25},{'name':'DDDD', 'age':20},{'name':'CCCC', 'age':25},{'name':'CCCC', 'age':15}]
Vorrei raggiungere questa lista:
list=[{'name':'AAAA', 'age':25},{'name':'CCCC', 'age':15},{'name':'CCCC', 'age':25},{'name':'DDDD', 'age':20}]
Cioè un ordinamento prima per name, poi per age nel caso in cui vi siano dei name uguali. Lasciando solo l'ordinamento per nome, quando troverà nomi uguali me li inserirà semplicemente per come li incontra, dunque devo ordinare per due criteri.
Se ordino prima per nome esce questo:
list=[{'name':'AAAA', 'age':25},{'name':'CCCC', 'age':25},{'name':'CCCC', 'age':15},{'name':'DDDD', 'age':20}]
e se successivamente ordino per age ignora il precedente ordinamento e restituisce:
list=[{'name':'CCCC', 'age':15},{'name':'DDDD', 'age':20},{'name':'AAAA', 'age':25},{'name':'CCCC', 'age':25}]
e sono punto e accapo.
Uso questi comandi per ordinare:
list = sorted(list, key=lambda k: k['name']) e poi list = sorted(list, key=lambda k: k['age']), ma appunto così non segue entrambi gli ordinamenti e non saprei come inserirli entrambi in un solo sorted nella stessa key(anche senza usare la funzione lambda).
pls help
Sto vedendo varie soluzioni online, ma in nessuna riesco a trovare una soluzione dunque mi chiedo, è possibile inserire nella key del sorted più criteri?
Pongo un esempio per chiarirmi.
Ho questa lista di dizionari:
list=[{'name':'AAAA', 'age':25},{'name':'DDDD', 'age':20},{'name':'CCCC', 'age':25},{'name':'CCCC', 'age':15}]
Vorrei raggiungere questa lista:
list=[{'name':'AAAA', 'age':25},{'name':'CCCC', 'age':15},{'name':'CCCC', 'age':25},{'name':'DDDD', 'age':20}]
Cioè un ordinamento prima per name, poi per age nel caso in cui vi siano dei name uguali. Lasciando solo l'ordinamento per nome, quando troverà nomi uguali me li inserirà semplicemente per come li incontra, dunque devo ordinare per due criteri.
Se ordino prima per nome esce questo:
list=[{'name':'AAAA', 'age':25},{'name':'CCCC', 'age':25},{'name':'CCCC', 'age':15},{'name':'DDDD', 'age':20}]
e se successivamente ordino per age ignora il precedente ordinamento e restituisce:
list=[{'name':'CCCC', 'age':15},{'name':'DDDD', 'age':20},{'name':'AAAA', 'age':25},{'name':'CCCC', 'age':25}]
e sono punto e accapo.
Uso questi comandi per ordinare:
list = sorted(list, key=lambda k: k['name']) e poi list = sorted(list, key=lambda k: k['age']), ma appunto così non segue entrambi gli ordinamenti e non saprei come inserirli entrambi in un solo sorted nella stessa key(anche senza usare la funzione lambda).
pls help