consider-using-dict-comprehension / R1717ΒΆ

Message emitted:

Consider using a dictionary comprehension


Emitted when we detect the creation of a dictionary using the dict() callable and a transient list. Although there is nothing syntactically wrong with this code, it is hard to read and can be simplified to a dict comprehension. Also it is faster since you don't need to create another transient list

Problematic code:

NUMBERS = [1, 2, 3]

# +1: [consider-using-dict-comprehension]
DOUBLED_NUMBERS = dict([(number, number * 2) for number in NUMBERS])

Correct code:

NUMBERS = [1, 2, 3]

DOUBLED_NUMBERS = {number: number * 2 for number in NUMBERS}

Additional details:

pyupgrade or ruff can fix this issue automatically.

Created by the refactoring checker.