6.14. 表达式列表

  1. expression_list ::= expression ("," expression)* [","]
  2. starred_list ::= starred_item ("," starred_item)* [","]
  3. starred_expression ::= expression | (starred_item ",")* [starred_item]
  4. starred_item ::= expression | "*" or_expr

除了作为列表或集合显示的一部分,包含至少一个逗号的表达式列表将生成一个元组。 元组的长度就是列表中表达式的数量。 表达式将从左至右被求值。

一个星号 * 表示 可迭代拆包。 其操作数必须为一个 iterable。 该可迭代对象将被拆解为迭代项的序列,并被包含于在拆包位置上新建的元组、列表或集合之中。

3.5 新版功能: 表达式列表中的可迭代对象拆包,最初由 PEP 448 提出。

末尾的逗号仅在创建单独元组 (或称 单例) 时需要;在所有其他情况下都是可选项。 没有末尾逗号的单独表达式不会创建一个元组,而是产生该表达式的值。 (要创建一个空元组,应使用一对内容为空的圆括号: ()。)