6.14. 表达式列表
- expression_list ::=
expression
(","expression
)* [","]- starred_list ::=
starred_item
(","starred_item
)* [","]- starred_expression ::=
expression
| (starred_item
",")* [starred_item
]- starred_item ::=
expression
| "*"or_expr
除了作为列表或集合显示的一部分,包含至少一个逗号的表达式列表将生成一个元组。 元组的长度就是列表中表达式的数量。 表达式将从左至右被求值。
一个星号 *
表示 可迭代拆包。 其操作数必须为一个 iterable。 该可迭代对象将被拆解为迭代项的序列,并被包含于在拆包位置上新建的元组、列表或集合之中。
3.5 新版功能: 表达式列表中的可迭代对象拆包,最初由 PEP 448 提出。
末尾的逗号仅在创建单独元组 (或称 单例) 时需要;在所有其他情况下都是可选项。 没有末尾逗号的单独表达式不会创建一个元组,而是产生该表达式的值。 (要创建一个空元组,应使用一对内容为空的圆括号: ()
。)