# How to use Python map()

> Learn how to use the Python map() function to run a function on every item of an iterable and build a new list, using a named or inline lambda function.

Author: Flavio Copes | Published: 2021-02-26 | Canonical: https://flaviocopes.com/python-map/

[Python](https://flaviocopes.com/python-introduction/) provides 3 useful global functions we can use to work with collections: `map()`, `filter()` and `reduce()`.

> Tip: sometimes [list comprehensions](https://flaviocopes.com/python-list-comprehensions/) make more sense and are generally considered more _pythonic_

`map()` is used to run a function upon each item in an iterable item like a list, and create a new list with the same number of items, but the values of each item can be changed.

Example of `map()` being used to double each item in a list:

```python
numbers = [1, 2, 3]

def double(a):
    return a * 2

result = map(double, numbers)
```

When the function is a one-liner, it's common to use a lambda function:

```python
numbers = [1, 2, 3]

double = lambda a : a * 2

result = map(double, numbers)
```

and even inline it:

```python
numbers = [1, 2, 3]

result = map(lambda a : a * 2, numbers)
```

The original list is left untouched, and a new list with the updated values is returned by `map()`.

The result is a map object, an iterable, and you will need to cast it to a `list` to print its content:

```python
print(list(result)) # [2, 4, 6]
```
