##
5.2.4 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.