Python中is和==的区别


要理解Python中is和==的区别,首先要理解Python对象的三个要素:

要素 说明 获取方式
id 身份标识,基本就是内存地址,用来唯一标识一个对象 id(obj)
type 数据类型 type(obj)
value :-----:

is和==区别

标识 名称 判断方法
is 同一性运算符 id
== 比较运算符 value

程序举例

例1:

屏幕截图2.jpg
a = {"a":1, "b":2}
b = a.copy()

a == b  # True value一样
a is b  # False id不一样

例2:

屏幕截图.jpg
>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False
>>>
>>> print id(x)
>>> print id(y)
>>> print id(z)

>>> a = 1 #a和b为数值类型
>>> b = 1
>>> a is b
True
>>> id(a)
>>> id(b)
>>> a = 'cheesezh' #a和b为字符串类型
>>> b = 'cheesezh'
>>> a is b
True
>>> id(a)
>>> id(b)
>>> a = (1,2,3) #a和b为元组类型
>>> b = (1,2,3)
>>> a is b
False
>>> id(a)
>>> id(b)
>>> a = [1,2,3] #a和b为list类型
>>> b = [1,2,3]
>>> a is b
False
>>> id(a)
>>> id(b)
>>> a = {'cheese':1,'zh':2} #a和b为dict类型
>>> b = {'cheese':1,'zh':2}
>>> a is b
False
>>> id(a)
>>> id(b)
>>> a = set([1,2,3])#a和b为set类型
>>> b = set([1,2,3])
>>> a is b
False
>>> id(a)
>>> id(b)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的对象包含三要素:id、type、value。 id 用来唯一标识一个对象,type 标识对象的类型...
    東飛阅读 1,571评论 0 0
  • 在python中,is检查两个对象是否是同一个对象,而==检查他们是否相等. 例如 p = [1]q = [1]p...
    yorickshan阅读 3,621评论 0 0
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,233评论 1 118
  • 上周,给上海平和学校的学生上了一节关于都江堰水利工程的课。从小就去都江堰参观,现在每年也要去都江堰好几次,也从小就...
    哎哟不错哟_5594阅读 1,526评论 0 0
  • 晓漏 呜呜的绿皮火车 夕阳点燃上午 树叶的荫翳 搭成巨大的罗网 牢牢套住 嬉戏的时光 留下了孤单的影子 独自地玩耍...
    衍辰阅读 1,670评论 0 2

友情链接更多精彩内容