运算符:is与==的区别
运算符
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与==的区别相关推荐
- C++搞懂深拷贝初始化=与赋值(运算符重载)=的区别
C++搞懂深拷贝初始化=与赋值(运算符重载)=的区别 C++构造函数用=与()不完全一样,注意使用=时c++中临时变量不能作为非const的引用参数,不论是=运算符重载还是构造函数,否则可能出现以下错 ...
- 按位运算符与逻辑运算符的区别
按位运算符 位运算是将数据先转化为二进制补码的形式,再逐位按规则进行计算. 按位与运算符' & ' ,规则,全1为1,否则为0 按位或运算符' | ',规则,全0为0,否则为1 按位非运算符' ...
- PHP合并数组array_merge函数运算符加号与的区别
"+"运算符和array_merge():array array_merge ( array array1, array array2 [, array ...] ) 都可以合并多 ...
- Python中运算符 is 和 == 的区别
Python 中有个很有趣的运算符–is,其作用看似和==是一样的,但实际上并非如此. 通过一个示例来看一下两者的去区别: >>> a = b = [1,2,3] >>& ...
- python 查看变量_剖析python运算符is和==的区别
is和==这两个运算符一直是困扰python的初学者,它们都可以用来判断某个对象是否是某个值,那么到底什么时候用is,什么时候用==去判断某个对象是否是某个值哪?下面勇哥结合实例给大家分享下两者的区别 ...
- javascript运算符:==与===的区别,||和特殊用法
1.==与===的区别 ==:用于比较两个操作数是否相等,这两个操作数的数据类型不一定要相等,只要进行数据类型转换后相等即为true ===:只有在两个操作数的数据类型和值都相等的情况下才为true ...
- Python运算符is与==的区别
在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地址是一样的,当然它们的值肯定也是一样的. ...
- new运算符与malloc函数区别
相同点: 都可以进行内存管理. 不同点: 1.new 是c++中的操作符,malloc是c 中的一个函数 2.new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而ma ...
- js三进制计算机,js 笔记 - 二进制位运算符
概述 二进制位运算符用于直接对二进制位进行计算,一共有7个.二进制或运算符(or):符号为|,表示若两个二进制位都为0,则结果为0,否则为1. 二进制与运算符(and):符号为&,表示若两个二 ...
最新文章
- 开发连接mysql_VC连接Mysql及开发详细指南
- 判断点是否在多边形内——射线法
- unity3d-知识汇总
- 修改oracle日志大小,修改Oracle重做日志文件大小
- unilever workspace creating space
- 判断变量是空_关于“情境中的随机变量”的思考
- 按钮不通过表单连接servlet_JavaWeb之Servlet(一)
- linux操作系统之信号
- RabbitMQ 最新版安装 (Linux环境)
- 猎豹浏览器怎么查看历史记录 猎豹浏览器历史记录查看教程
- VMware 虚拟上网的的三种模式 ——bridged、host-only、NAT 模式
- C# 调用c++ 实例
- Struts2框架的概念及使用方法
- AI语音克隆软件安装和使用教程
- GitLab之Runner注册K8S
- No fallback instance of type class错误的解决方案
- 每次启动虚拟机都要重装虚拟机的操作系统
- android 手机震动1次,Android的手机震动
- QT 幸运大转盘动画
- 在使用计算机时可以用什么键关机,电脑死机按什么键关机重启
热门文章
- 精准引流客源的方法 129种引流方法全方位操作
- 度娘果然毫无节操,纯粹就是order by 广告费 desc
- CRM后台管理系统:HTML+CSS+JavaScript制作企业网站后台管理系统模板网站(46个页面)
- AUTOCAD——设置文字间距与行距
- 纯CSS实现地图标记光圈扩散效果
- 手机方案厂商怨高通门槛高 联发科影响力犹存
- 集成支付宝支付(AliPay)详解,防跳坑
- E+H超声波液位计FMU41-ARB2A2
- Linux下的流量控制(TC)和服务质量(QoS)
- ‘今年找工作太难了,真的是卷到我想哭!’,一个疫情就业季下的毕业生艰辛IT求职道路上的经验分享!见识入社会的不容易!