(0,)==(0)
False
在(0,)中的含义是什么,什么时候用这种元组代替(0)这样的常规元组是有用的?
我认为这可能意味着索引1中的项目为None,但事实并非如此:
(0,)[1]
Traceback (most recent call last):
File "<input>", line 1, in <module>
IndexError: tuple index out of range
另外,如果我想让(0,1,)变成(0,1),我该如何操作?
编辑:
也许我简化了用于我的问题的示例,这是我的原始问题:
(('Suggest', 1.0), 65)==((('Suggest', 1.0),), 65)
False
所以我想python不会像数学表达式那样有效('Suggest',1.0)吗?
答案 0 :(得分:4)
(0)
不会被Python解释为元组,而是被解释为数字表达式(类似于(1+2)
,但没有任何数学运算)。尾部逗号用来告诉Python,它显然是一个1元素的元组。
>>> type((0))
<type 'int'>
>>> type((0,))
<type 'tuple'>
(0)
得出一个数字:
>>> (0) == 0
True
(0,)
得出一个元组,它不是数字...
(0,)== 0 错误
...但是是一个元组。
>>> (0,) == tuple([0])
True
这也不是特定于数字的,或者-(expression)
始终等同于expression
,而(expression,)
始终是具有第一个(也是唯一一个)的单元素元组元组中的项是expression
的结果。