use-comprehension

Prefer comprehensions over unnecessary collection constructor calls.

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)

Invalid examples

list(val for val in iterable)

Suggested fix

[val for val in iterable]
list(val for row in matrix for val in row)

Suggested fix

[val for row in matrix for val in row]
set(val for val in iterable)

Suggested fix

{val for val in iterable}
Show more
dict((x, f(x)) for val in iterable)

Suggested fix

{x: f(x) for val in iterable}
dict((x, y) for y, x in iterable)

Suggested fix

{x: y for y, x in iterable}
dict([val, val+1] for val in iterable)

Suggested fix

{val: val+1 for val in iterable}
dict((x["name"], json.loads(x["data"])) for x in responses)

Suggested fix

{x["name"]: json.loads(x["data"]) for x in responses}
dict((k, v) for k, v in iter for iter in iters)

Suggested fix

{k: v for k, v in iter for iter in iters}
set([val for val in iterable])

Suggested fix

{val for val in iterable}
dict([[val, val+1] for val in iterable])

Suggested fix

{val: val+1 for val in iterable}
dict([(x, f(x)) for x in foo])

Suggested fix

{x: f(x) for x in foo}
dict([(x, y) for y, x in iterable])

Suggested fix

{x: y for y, x in iterable}
set([val for row in matrix for val in row])

Suggested fix

{val for row in matrix for val in row}