Dire che ho un dizionario e quindi ho una lista che contiene le chiavi del dizionario. C'è un modo per ordinare l'elenco in base ai valori dei dizionari?Ordina una lista in base ai valori del dizionario in python?
ho cercato questo:
trial_dict = {'*':4, '-':2, '+':3, '/':5}
trial_list = ['-','-','+','/','+','-','*']
sono andato a usare:
sorted(trial_list, key=trial_dict.values())
e ottenuto:
TypeError: 'list' object is not callable
poi sono andato ad andare creare una funzione che potrebbe essere chiamato con trial_dict.get()
:
def sort_help(x):
if isinstance(x, dict):
for i in x:
return x[i]
sorted(trial_list, key=trial_dict.get(sort_help(trial_dict)))
Non credo che la funzione sort_help
abbia comunque alcun effetto sull'ordinamento. Non sono sicuro che l'utilizzo di trial_dict.get()
sia il modo corretto per farlo.
Oi, smetti di rispondere alle domande che sto rispondendo e dando risposte più intelligenti! :) Più seriamente: c'è una differenza di comportamento tra la risposta di thg e la mia. Il mio solleverà un'eccezione se trial_values contiene un valore che non è una chiave di trial_dict, mentre thg's ordinerà in modo silenzioso quel valore in primo piano. O può essere appropriato a seconda del contesto. –
@ thg435 Avrei dovuto ricontrollare i documenti, stavo chiaramente fraintendendo '.get'. – tijko
@MarkAmery: [Sei stato bravo, ragazzo, vero bene. Ma finché sono in giro, sarai sempre il secondo migliore, vedi?] (Http://www.imdb.com/title/tt0110475/quotes))) – georg