List displays
-------------
A list display is a possibly empty series of expressions enclosed in
square brackets:
list_display: "[" [listmaker] "]"
listmaker: expression ( list_for | ( "," expression)* [","] )
list_iter: list_for | list_if
list_for: "for" expression_list "in" testlist [list_iter]
list_if: "if" test [list_iter]
A list display yields a new list object. Its contents are specified by
providing either a list of expressions or a list comprehension. When a
comma-separated list of expressions is supplied, its elements are
evaluated from left to right and placed into the list object in that
order. When a list comprehension is supplied, it consists of a single
expression followed by at least one `for' clause and zero or more `for'
or `if' clauses. In this case, the elements of the new list are those
that would be produced by considering each of the `for' or `if' clauses
a block, nesting from left to right, and evaluating the expression to
produce a list element each time the innermost block is reached.