【发布时间】:2022-01-21 03:28:22
【问题描述】:
不明白为什么在 Python 中:
>>> (1,1) == 1,1
返回
>>> (False, 1)
还有声明:
>>> 1,1 == (1,1)
返回
>>> (1, False)
但是
>>> (1,1) == (1,1)
返回
>>> True
还有
>>> 1,1,1 == (1,1,1)
返回
>>> (1, 1, False)
有人可以解释发生了什么吗?
【问题讨论】:
-
因为
(1, 1) == 1, 1等价于((1, 1) == 1), 1而不是(1, 1) == (1, 1) -
好吧,基本上,如果您认为整个表达式都包含在
()中,这可能会有所帮助 - 这是有道理的,因为 REPL 正确地将表达式标识为元组类型。 -
因为括号不是元组语法的一部分,它们只是用于对表达式进行分组的普通括号——你只需要它们在没有它们含义会不同的上下文中(例如,在
,将分隔参数的函数调用中)。作为练习,尝试预测1,1==1,1的结果。你说对了吗? -
当然不是重复的,但另见:stackoverflow.com/questions/45517855/…
-
哦,我想你必须知道的另一件事是
,和==之间的操作顺序。