(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 不会像数学表达式那样插入("建议",1.0)吗?
(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
的结果。