欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python中 is 与 == 的区别

程序员文章站 2022-03-08 20:10:10
is 是完全相同,值以及内存位置一摸一样 ==是值相同,内存位置不一样 >>> a=[11,22,33]>>> b=[11,22,33]>>> id(a)100711200>>> id(b)100667960>>> a==bTrue>>> a is bFalse except : >>> a=1>> ......

is 是完全相同,值以及内存位置一摸一样

==是值相同,内存位置不一样

>>> a=[11,22,33]
>>> b=[11,22,33]
>>> id(a)
100711200
>>> id(b)
100667960
>>> a==b
True
>>> a is b
False

except : 

 

>>> a=1
>>> b=1
>>> id(a)
1605227568
>>> id(b)
1605227568
>>> a==b
True
>>> a is b
True

为什么呢?这是为了高效率使用内存,Python3的解释器中实现了小数字和字符串缓存的机制,小数字的缓冲范围是[-5 ~ 256],字符串的缓存位数默认是20位