リスト表現は、角括弧で囲われた式の系列です。系列は空の系列であっても かまいません:
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] |
リスト表現は、新に作成されたリストオブジェクトを表します。 新たなリストの内容は、式のリストを与えるか、リストの内包表記 (list comprehension) で指定します。 カンマで区切られた式のリストを与えた場合、リストの各要素は左から 右へと順に評価され、評価された順番にリスト内に配置されます。 リストの内包表記を与える場合、内包表記はまず単一の式、続いて 少なくとも一つの for 節、続いてゼロ個以上の for 節か、if 節になります。 この場合、新たに作成されるリストの各要素は、各々の for や if 節を左から右の順にネストしたブロックとみなして実行し、 ネストの最内ブロックに到達する度に式を評価した値となります。 5.1