pop
è una grande piccola funzione che, se utilizzata nei dizionari (con una chiave conosciuta) rimuove l'elemento con quella chiave dal dizionario e restituisce anche il valore corrispondente. Ma cosa succede se voglio anche la chiave?Neat way of popping key, valore PAIR dal dizionario?
Ovviamente, nei casi più semplici probabilmente potrei solo fare qualcosa di simile:
pair = (key, some_dict.pop(key))
Ma se, per esempio, ho voluto per estrarre la coppia chiave-valore con il valore più basso, seguendo l'idea di cui sopra lo farei hanno a che fare questo ...
pair = (min(some_dict, key=some.get), some_dict.pop(min(some_dict, key=some_dict.get)))
... che è orrendo come devo fare l'operazione per due volte (ovviamente ho potuto memorizzare l'output da min
in una variabile, ma non sono ancora completamente soddisfatto quella). Quindi la mia domanda è: c'è un modo elegante per farlo? Mi sto perdendo un trucco ovvio qui?
negozio l'output di 'min' in una variabile – JBernardo
@Bernardo ci avevo pensato. Ovviamente è meglio, ma sento che dovrebbe esserci un modo migliore senza uno. –
Si potrebbe desiderare un heap, piuttosto che un 'dict'. Vedi il modulo 'heapq'. – chepner