Python(1)—is和==区别

1、二者区别

  • == 是比较两个对象的内容是否相等,即两个对象的“值“”是否相等,不管两者在内存中的引用地址是否一样。
  •  is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。即is比较两个条件:1.内容相同。2.内存中地址相同

2、 python中对于None值的比较:使用is

  因为None只有一个实例。 

>>> a =""
>>> a is None
False
>>> b ="aa"
>>> b is None
False
>>> b is not None
True 

3、根本区别

首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

==是python运算符中的比较操作符,用来比较判断两个对象的value(值)是否相等

例如:

                 a = 'abc'

                  b = 'abc'

                  print a ==b    >>>>True

is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。

例如:

                   a = [1,2,3]

                   b = [1,2,3]

                   print id(a), id(b)    >>>>4389046392 , 4389177464

                   print a is b        >>>>False

只有数值型字符串型的情况下,a is b才为True,当a和b是tuplelistdictset型时,a is b为False



作者:非常没想法
链接:https://www.jianshu.com/p/a41ad2ff2963
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

posted @ 2018-06-24 17:38  深度机器学习  阅读(438)  评论(0编辑  收藏  举报