##
5.2.4 リスト表現

リスト表現は、角括弧で囲われた式の系列です。系列は空の系列であっても かまいません:

  `test` | ::= | `and_test ( "or" and_test )* | lambda_form`
  `testlist` | ::= | `test ( "," test )* [ "," ]`
  `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]`

  Download entire grammar as text.

リスト表現は、新に作成されたリストオブジェクトを表します。 新たなリストの内容は、式のリストを与えるか、リストの内包表記 (list comprehension) で指定します。 カンマで区切られた式のリストを与えた場合、リストの各要素は左から 右へと順に評価され、評価された順番にリスト内に配置されます。 リストの内包表記を与える場合、内包表記はまず単一の式、続いて 少なくとも一つの `for` 節、続いてゼロ個以上の `for` 節か、`if` 節になります。 この場合、新たに作成されるリストの各要素は、各々の `for` や `if` 節を左から右の順にネストしたブロックとみなして実行し、 ネストの最内ブロックに到達する度に式を評価した値となります。