单个元素元组永远不会被视为包含的元素。括号对分组最有用,而不是对元组的创建。逗号会这样做。
他们为什么不只将(1,)打印为(1)?
可能是因为打印内置容器类型提供了一种表示形式,可用于通过表示重新创建容器对象,例如
eval:
的docs
__repr__在此方面提供了一些清晰度:
如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象
回答您的问题,
(1)只是
1带有分组括号的整数。为了通过其表示重新创建单例元组,必须将其打印
(1,)为创建元组的有效语法。
>>> t = '(1,)'>>> i = '(1)'>>> eval(t)(1,) # tuple>>> eval(i)1 # int



