Chciałbym zastosować funkcję do wartości dict
w miejscu w dict
(jak w ustawieniu programowania funkcjonalnego).Modyfikuj wartości dyktujące w miejscu
Powiedzmy mam to dict
:
d = { 'a':2, 'b':3 }
Chcę zastosować funkcję divide by 2.0
do wszystkich wartości dict, co prowadzi do:
d = { 'a':1., 'b':1.5 }
Jaki jest najprostszy sposób Zrób to?
Używam Python 3.
Edytuj: Jeden liniowiec byłby miły. divide by 2
jest tylko przykładem, potrzebuję funkcji jako parametru.
Naprawdę myślisz, że pomnożenie będzie znacznie szybsze niż dzielenie? Może w PyPy, gdzie wszystkie koszty, ale arytmetyka skurczyły się do punktu, w którym robi różnicę, ale w CPython założę się, że nie możesz nawet wykryć różnicy ... – abarnert
Sądzę również, że przechodzenie od rozumienia dyktatu do 'd2' zamiast generujących krotek generujących wyrażenie może być w tym przypadku bardziej czytelna (nawet jeśli" marnuje się "na tworzenie nowego słownika). – abarnert
Na marginesie, tak naprawdę nie lubię interpretacji Dict w kodzie python3.x z dwóch głównych powodów - ** 1) ** Twój kod nie jest wstecznie zgodny z python2.6, ** 2) ** Poglądy dyktowania wyglądają trochę zbyt podobnie do ustawiania ze zrozumieniem. (Ja też nie lubię set literałów z tego samego powodu) – mgilson