Biorąc pod uwagę słownik, { k1: v1, k2: v2 ... }
który chcę uzyskać, { k1: f(v1), k2: f(v2) ... }
pod warunkiem, że podam funkcję f
.
Czy jest taka wbudowana funkcja? Czy muszę to zrobić
dict([(k, f(v)) for (k, v) in my_dictionary.iteritems()])
Idealnie po prostu bym napisał
my_dictionary.map_values(f)
lub
my_dictionary.mutate_values_with(f)
Oznacza to, że nie ma dla mnie znaczenia, czy oryginalny słownik jest zmutowany, czy tworzona jest kopia.
dict((k, f(v)) for k, v in mydict.iteritems())
, tj. Bez nawiasów kwadratowych, które uniemożliwiłyby utworzenie listy pośredniej za pomocą generatora.