这个问题已经有了答案:
(0,)==(0) False
在(0)中,什么意思?什么时候用这种元组而不是像(0)这样的正则元组有用?
我认为这可能意味着索引1中的项目不是,但事实并非如此:
(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不会像数学表达式那样插入(“建议”,1.0)?
(0) 不会被python解释为一个元组,而是作为一个数值表达式(比如 (1+2) 除非没有任何数学运算)。尾随逗号用于告诉Python它显式地是一个1元素元组。
(0)
(1+2)
>>> type((0)) <type 'int'> >>> type((0,)) <type 'tuple'>
(0) 计算结果为数字:
>>> (0) == 0 True
(0,) 计算为一个元组,该元组不是数字…
(0,)
(0,)=0 假
…但是是一个元组。
>>> (0,) == tuple([0]) True
这也不特定于数字。- (expression) 将始终等同于 expression ,同时 (expression,) 将始终是一个元素tuple,其中tuple中的第一个(也是唯一一个)项是 表达 .
(expression)
expression
(expression,)
表达