Chalarangelo/30-seconds-of-code

View on GitHub
content/snippets/python/s/map-values.md

Summary

Maintainability
Test Coverage
---
title: Map dictionary values
type: tip
language: python
tags: [dictionary]
cover: pineapple-laptop
excerpt: Create a dictionary with the same keys as the provided dictionary and values generated by running the provided function for each value.
listed: false
dateModified: 2024-08-03
---

Have you ever wanted to create a dictionary with the same keys as the provided dictionary and values generated by running the provided function for each value? Luckily, there's a quick and easy way to do this in Python.

Using `dict.items()`, you can iterate over the dictionary. Then, you can assign the values produced by the function to each key of a new dictionary. And that's it!

```py
def map_values(obj, fn):
  return dict((k, fn(v)) for k, v in obj.items())

users = {
  'fred': { 'user': 'fred', 'age': 40 },
  'pebbles': { 'user': 'pebbles', 'age': 1 }
}
map_values(users, lambda u : u['age']) # {'fred': 40, 'pebbles': 1}
```