运算符

is 和 == 的区别

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

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:

>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> a == b
True

is也被叫做同一性运算符,这个运算符比较判断的是id是否相同。可以通过对下面几个list间的比较看出差异性:

>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False

我们可以对x、y、z的id进行打印


>>> print id(x)
30753555
>>> print id(y)
30753555
>>> print id(z)
30753702

可以看出x和y的id是相同的,而z虽然和x、y的值相同,但是id却不同。
因此可以得知:
1、is的判断是需要对数值以及id进行比较,只要有一者不同则为False;
2、==的判断仅仅针对数值的判断

以上仅为作者个人观点,一切以实际操作为准!

拓展:
当比较tuple,list,dict或set又会怎样呢?

参考资料: https://www.cnblogs.com/wangkun122/p/9082088.html

运算符:is与==的区别相关推荐

  1. C++搞懂深拷贝初始化=与赋值(运算符重载)=的区别

    C++搞懂深拷贝初始化=与赋值(运算符重载)=的区别 C++构造函数用=与()不完全一样,注意使用=时c++中临时变量不能作为非const的引用参数,不论是=运算符重载还是构造函数,否则可能出现以下错 ...

  2. 按位运算符与逻辑运算符的区别

    按位运算符 位运算是将数据先转化为二进制补码的形式,再逐位按规则进行计算. 按位与运算符' & ' ,规则,全1为1,否则为0 按位或运算符' | ',规则,全0为0,否则为1 按位非运算符' ...

  3. PHP合并数组array_merge函数运算符加号与的区别

    "+"运算符和array_merge():array array_merge ( array array1, array array2 [, array ...] ) 都可以合并多 ...

  4. Python中运算符 is 和 == 的区别

    Python 中有个很有趣的运算符–is,其作用看似和==是一样的,但实际上并非如此. 通过一个示例来看一下两者的去区别: >>> a = b = [1,2,3] >>& ...

  5. python 查看变量_剖析python运算符is和==的区别

    is和==这两个运算符一直是困扰python的初学者,它们都可以用来判断某个对象是否是某个值,那么到底什么时候用is,什么时候用==去判断某个对象是否是某个值哪?下面勇哥结合实例给大家分享下两者的区别 ...

  6. javascript运算符:==与===的区别,||和特殊用法

    1.==与===的区别 ==:用于比较两个操作数是否相等,这两个操作数的数据类型不一定要相等,只要进行数据类型转换后相等即为true ===:只有在两个操作数的数据类型和值都相等的情况下才为true ...

  7. Python运算符is与==的区别

    在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地址是一样的,当然它们的值肯定也是一样的. ...

  8. new运算符与malloc函数区别

    相同点: 都可以进行内存管理. 不同点: 1.new 是c++中的操作符,malloc是c 中的一个函数 2.new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而ma ...

  9. js三进制计算机,js 笔记 - 二进制位运算符

    概述 二进制位运算符用于直接对二进制位进行计算,一共有7个.二进制或运算符(or):符号为|,表示若两个二进制位都为0,则结果为0,否则为1. 二进制与运算符(and):符号为&,表示若两个二 ...

最新文章

  1. 开发连接mysql_VC连接Mysql及开发详细指南
  2. 判断点是否在多边形内——射线法
  3. unity3d-知识汇总
  4. 修改oracle日志大小,修改Oracle重做日志文件大小
  5. unilever workspace creating space
  6. 判断变量是空_关于“情境中的随机变量”的思考
  7. 按钮不通过表单连接servlet_JavaWeb之Servlet(一)
  8. linux操作系统之信号
  9. RabbitMQ 最新版安装 (Linux环境)
  10. 猎豹浏览器怎么查看历史记录 猎豹浏览器历史记录查看教程
  11. VMware 虚拟上网的的三种模式 ——bridged、host-only、NAT 模式
  12. C# 调用c++ 实例
  13. Struts2框架的概念及使用方法
  14. AI语音克隆软件安装和使用教程
  15. GitLab之Runner注册K8S
  16. No fallback instance of type class错误的解决方案
  17. 每次启动虚拟机都要重装虚拟机的操作系统
  18. android 手机震动1次,Android的手机震动
  19. QT 幸运大转盘动画
  20. 在使用计算机时可以用什么键关机,电脑死机按什么键关机重启

热门文章

  1. 精准引流客源的方法 129种引流方法全方位操作
  2. 度娘果然毫无节操,纯粹就是order by 广告费 desc
  3. CRM后台管理系统:HTML+CSS+JavaScript制作企业网站后台管理系统模板网站(46个页面)
  4. AUTOCAD——设置文字间距与行距
  5. 纯CSS实现地图标记光圈扩散效果
  6. 手机方案厂商怨高通门槛高 联发科影响力犹存
  7. 集成支付宝支付(AliPay)详解,防跳坑
  8. E+H超声波液位计FMU41-ARB2A2
  9. Linux下的流量控制(TC)和服务质量(QoS)
  10. ‘今年找工作太难了,真的是卷到我想哭!’,一个疫情就业季下的毕业生艰辛IT求职道路上的经验分享!见识入社会的不容易!