python中的==和is

来源:互联网 发布:dnf校园网打团网络冲突 编辑:程序博客网 时间:2024/06/06 08:39

>>> x = y = [1,2,3]
>>> z = [1,2,3]
>>> x ==y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False

最后一个语句x is z,结果是false.x和z相等,但是不等同。为什么?

因为:is运算符是判定同一性而不是相等性的。变量x和y是被绑定到同一列表上,而z被绑定到另外一个相同数值和顺序的列表上。他们的值可能相同,但是不是同一个对象。

总结:使用==运算符判定两个对象是否相等,使用is判定两者是否等同(同一个对象)。

警告:避免将is运算符用于比较数值和字符串这类不可变值。由于python内部操作这些对象的原因,使用is运算符的结果是不可预测的。


0 0
原创粉丝点击