Được cung cấp từ điển { k1: v1, k2: v2 ... }
Tôi muốn nhận được { k1: f(v1), k2: f(v2) ... }
với điều kiện tôi chuyển một hàm f
.Lập bản đồ các giá trị trong từ điển python
Có chức năng tích hợp nào không? Hay tôi phải làm
dict([(k, f(v)) for (k, v) in my_dictionary.iteritems()])
Lý tưởng nhất là tôi sẽ chỉ cần viết
my_dictionary.map_values(f)
hoặc
my_dictionary.mutate_values_with(f)
Nghĩa là, nó không quan trọng với tôi nếu từ điển gốc bị đột biến hoặc một bản sao được tạo.
Cách tốt hơn viết ví dụ của bạn sẽ là 'dict ((k, f (v)) cho k, v trong mydict.iteritems())', tức là không có dấu ngoặc vuông, điều đó sẽ ngăn cản việc tạo danh sách trung gian thông qua trình tạo. – bereal