[Python] dizionario: ottenere chiave da valore
Enrico Franchi
enrico.franchi a gmail.com
Sab 12 Feb 2011 10:16:39 CET
Nicola Ferrari wrote:
> ho un dizionario di n elementi.. per prendere il valore massimo faccio
> max(dizionario.values()).. esiste un metodo che dato un valore mi
> recupera la chiave di questo valore?
Non un metodo efficiente. Un dizionario e' fatto per recuperare
efficientemente il valore data una chiave, non viceversa.
Quello che io farei e' ottenerlo automaticamente durante la scansione
comunque lineare del dizionario che fai per values.
In [1]: d =dict(a=10, b=1000, c=10000)
In [2]: max?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function max>
Namespace: Python builtin
Docstring:
max(iterable[, key=func]) -> value
max(a, b, c, ...[, key=func]) -> value
With a single iterable argument, return its largest item.
With two or more arguments, return the largest argument.
<osserva il parametro key>
In [3]: import operator as op
In [4]: max(d.iteritems(), key=op.itemgetter(1))
Out[4]: ('c', 10000)
Eccoti li il massimo secondo il valore, con bello e pronto anche la sua
chiave.
--
.
..: -enrico-
Maggiori informazioni sulla lista
Python