Skip to content

Use dictionary items

Sourcery refactoring id: use-dict-items

Description:

Use dictionary.items() in for loops to access both key and value at same time

Before:

hats_by_colour = {'blue': ['panama', 'baseball_cap']}
for hat_colour in hats_by_colour:
    hats = hats_by_colour[hat_colour]
    if hat_colour in FAVOURITE_COLOURS:
        think_about_wearing(hats)

After:

hats_by_colour = {'blue': ['panama', 'baseball_cap']}
for hat_colour, hats in hats_by_colour.items():
    if hat_colour in FAVOURITE_COLOURS:
        think_about_wearing(hats)

Explanation:

When iterating over a dictionary a good tip is that you can use items() to let you access the keys and values at the same time.

This saves us the line that we used to assign to hats, incorporating it into the for loop. The code now reads more naturally, with a touch less duplication.

Back to top