is比较内存地址是否相等
is 主要是判断 2 个变量的值是否指向同一个内存地址,如果是的话,则返回 true,否则返回 false。
>>> a = 5555555 >>> b = 5555555 >>> a is b False >>> id(a) #a与b在内存中各开辟了一个地址存放它的值,虽然它们的值相同,但内存地址不同 1925864837008 >>> id(b) 1925868899600 >>> a = 123 >>> b = 123 >>> a is b True >>> id(a) 1880121952 #在这里可以看到,两个变量的值都指向了一个内存地址,在python解释器中,为了节省内存的占用,字符和数字在一定范围内存在一个小数据池,数据在这个范内指向同一个内存地址,列表、字典、元组、集合等不存在小数据池 >>> id(b) 1880121952 >>>
id内存地址
>>> a = 321 >>> b = 456 >>> id(a) 1801244593360 >>> id(b) 1801244593392