There are several ways to create a new list based on the elements of some other collection, but the use of a list comprehension has multiple benefits. First, it is both concise and readable, and second, it yields a fully-formed object without requiring a mutable object as input that must be updated multiple times in the course of the list creation.


== Noncompliant Code Example

----
squares = []
for x in range(10):
   squares.append(x**2)  # Noncompliant

squares = map(lambda x: x**2, range(10))  #Noncompliant
----


== Compliant Solution

----
squares = [x**2 for x in range(10)]
----

