Desidero applicare una funzione ai valori di dict
in posizione nel dict
(come map
in un'impostazione di programmazione funzionale).Modifica valori dict inplace
Diciamo che ho questo dict
:
d = { 'a':2, 'b':3 }
voglio applicare la funzione divide by 2.0
a tutti i valori del dizionario, che porta a:
d = { 'a':1., 'b':1.5 }
Qual è il modo più semplice per Fai quello?
Io uso Python 3.
Modifica: Un one-liner sarebbe bello. Il divide by 2
è solo un esempio, ho bisogno che la funzione sia un parametro.
Pensi davvero che moltiplicare sarà molto più veloce della divisione? Forse in PyPy, dove tutti i costi, ma l'aritmetica sono ridotti al punto in cui fa la differenza, ma in CPython, scommetto che non puoi nemmeno rilevare la differenza ... – abarnert
Inoltre, penso che passare la comprensione del Dtc in questo caso 'd2' invece di un'espressione generatore che genera tuple potrebbe essere più leggibile in questo caso (anche se crea" sprecamente "un nuovo dizionario). – abarnert
Come nota a margine, in realtà non mi piacciono le interpretazioni in dict nel codice python3.x per due motivi principali - ** 1) ** Il tuo codice non è retrocompatibile con python2.6, ** 2) ** la comprensione del ditt sembra un po 'troppo simile alle comprensioni dell'insieme. (Inoltre non mi piacciono i letterali impostati per lo stesso motivo) – mgilson