use-comprehension

Prefer comprehensions over unnecessary collection constructor calls.

Message template

Replace this {func}() call with the equivalent comprehension.

Placeholder values are filled in when the violation is reported.

Valid examples

[val for val in iterable]
{val for val in iterable}
{val: val+1 for val in iterable}
dict(line.strip().split('=', 1) for line in attr_file)
Show more
def list(value):
    return value

list(val for val in iterable)

Invalid examples

list(val for val in iterable)
list(val for row in matrix for val in row)
set(val for val in iterable)
dict((x, f(x)) for val in iterable)
dict((x, y) for y, x in iterable)
dict([val, val+1] for val in iterable)
Show more
dict((x["name"], json.loads(x["data"])) for x in responses)
dict((k, v) for k, v in iter for iter in iters)
set([val for val in iterable])
dict([[val, val+1] for val in iterable])
dict([(x, f(x)) for x in foo])
dict([(x, y) for y, x in iterable])
set([val for row in matrix for val in row])