如果要创建一个只有一个值的元组,则需要在其后加上一个逗号:
(value,)
而
(value)
与
相同value
为什么python具有这种语法?但这不是多余的吗?为什么不只将()用于元组?
答案 0 :(得分:7)
括号也用于表达式分组,如以下示例所示:
a + b * c
(a + b) * c
只有一个表达式时,创建元组将非常困难且令人困惑。上面的示例是否应视为tuple([a+b]) * c
?可能不会。那么如何区分(value)
和(value)
?请记住,值也是表达式。
另一方面,您不要使用方括号或大括号对表达式进行分组,因此[a]
和[a, b]
具有相同的外观。为方便起见,[a,]
也是有效的,并且与[a]
相同。
这就是为什么单值元组需要额外的逗号。