# How to use Python filter()

> Learn how to use the Python filter() function to keep only the items of an iterable that pass a test, using a named function or a concise lambda function.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2021-02-27 | Topics: [Python](https://flaviocopes.com/tags/python/) | Canonical: https://flaviocopes.com/python-filter/

[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_

`filter()` takes an iterable and returns a _filter object_, which is another iterable, but without some of the original items.

You do so by returning `True` or `False` from the filtering function:

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

def isEven(n):
    return n % 2 == 0

result = filter(isEven, numbers)

print(list(result)) # [2]
```

You can use a lambda function to make the code more concise:

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

result = filter(lambda n: n % 2 == 0, numbers)

print(list(result)) # [2]
```
