Skip to content

Use Any

Sourcery refactoring id: use-any

Description:

Use any rather than a for loop

Before:

found = False
for hat in hats:
    if hat == SOMBRERO:
        found = True
        break

After:

found = any(hat == SOMBRERO for hat in hats)

Explanation:

A common pattern is that we need to find if some condition holds for one or all of the items in a collection.

Using Python's any() and all() built in functions is a more concise way of doing this than using a for loop.

any() will return True when at least one of the elements evaluates to True, all() will return True only when all the elements evaluate to True.

These will also short-circuit execution where possible. If the call to any() finds an element that evalutes to True it can return immediately. This can lead to performance improvements if the code wasn't already short-circuiting.