身份运算符用于比较两个对象的存储单元是否一致。
而Python中 id() 函数用于获取对象内存地址。
代码举例:
a = [1,2,3]
id(a)
#输出为1402170201667133
b = [1,2]
id(b)
#输出为1402170201664567
b.append(3)
a==b
#输出True
a is b
#输出False
通过例子我们也发现了 is 和 == 的区别如下:
is判断的是两个变量引用的变量是否为同一个,包括变量的内存地址是否相同
而==引用变量的值是否相等,即变量的内容是否相等
如果对象的类型为整数或字符串且值一样,则 x == y和 x is y 的值为True。(经测试浮点型数值,只有正浮点数符合这条规律,负浮点数不符合);
list,tuple,dict,set类型一样的话,x is y 则为False;
详细内容参考