Skip to content

Index range replacement

Sourcery refactoring id: for-index-replacement

Description:

Replace item lookups in loops using the index with direct reference to the items

Before:

for i in range(len(currencies)):
    print(currencies[i])

After:

for currency in currencies:
    print(currency)

Explanation:

A pattern that is often used in Python for loops is to use range(len(list)) to generate a range of numbers that can be iterated over.

If the index i is only used to do list access this code can be improved by iterating over the list directly, as in the above example.

This code is easier to understand, and a lot less cluttered. In particular being able to use a meaningful name for currency greatly improves readability.

Note that this refactoring will only trigger where Sourcery can determine that the collection (currencies in this case) is a list.

Back to top