pythonis啥意思-Python中is和==的区别
Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么。
在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。
is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。
==比较操作符和is同一性运算符区别
==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:
例1.
>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> a == b
True
is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。通过对下面几个list间的比较,你就会明白is同一性运算符的工作原理:
例2.
>>> 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)
3075326572
>>> print id(y)
3075326572
>>> print id(z)
3075328140
前三个例子都是True,这什么最后一个是False呢?x、y和z的值是相同的,所以前两个是True没有问题。至于最后一个为什么是False,看看三个对象的id分别是什么就会明白了。
下面再来看一个例子,例3中同一类型下的a和b的(a==b)都是为True,而(a is b)则不然。
例3.
>>> a = 1 #a和b为数值类型
>>> b = 1
>>> a is b
True
>>> id(a)
14318944
>>> id(b)
14318944
>>> a = 'cheesezh' #a和b为字符串类型
>>> b = 'cheesezh'
>>> a is b
True
>>> id(a)
42111872
>>> id(b)
42111872
>>> a = (1,2,3) #a和b为元组类型
>>> b = (1,2,3)
>>> a is b
False
>>> id(a)
15001280
>>> id(b)
14790408
>>> a = [1,2,3] #a和b为list类型
>>> b = [1,2,3]
>>> a is b
False
>>> id(a)
42091624
>>> id(b)
42082016
>>> a = {'cheese':1,'zh':2} #a和b为dict类型
>>> b = {'cheese':1,'zh':2}
>>> a is b
False
>>> id(a)
42101616
>>> id(b)
42098736
>>> a = set([1,2,3])#a和b为set类型
>>> b = set([1,2,3])
>>> a is b
False
>>> id(a)
14819976
>>> id(b)
14822256
通过例3可看出,只有数值型和字符串型的情况下,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False。
pythonis啥意思-Python中is和==的区别相关推荐
- 列举至少五个python内置函数和使用方法_Python内置函数 next的具体使用方法 Python中seek和next区别...
python列表本来没有next方法,为什么用iter函数生...对list用__dir__()发现没有next方法,但是用iter()生成迭代器,对该迭代next是进行迭代的方法,只有迭代器和生成器 ...
- python中arg,*arg,**kwarg区别
python中arg,*arg,**kwarg区别 1. *args(*的作用很重要) 首先要搞清楚*的意思和作用,有助于理解arg,*arg,**kwarg. (*是arg的前半部分,arg是后半部 ...
- Python中is和==的区别以及is None
0 前言 Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么. 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id( ...
- python 中 is 与 == 的区别
在 Python 中,比较两个对象是否相等,可以用 "is" 和 "==" , is 与 == 的区别是什么呢,首先先清楚is 与 == 的概念 is 的概念: ...
- Python中“is”和“==”的区别
Python有两个用于相等比较的运算符,"is"和"=="(等于).在这篇文章中,我将教你们两者之间的区别,以及通过几个简单地例子说明什么时候使用它们. 当我还 ...
- python中绝对路径的区别,理解Python中的绝对路径和相对路径
本文介绍了Python中的绝对路劲和相对路径,分享给大家,也给自己留个笔记 1.绝对路径 os.path.abspath("文件名"): 显示的是一个文件的绝对路劲 eg: > ...
- Python中classmethod与staticmethod区别
classmethod:类方法 staticmethod:静态方法 在python中,静态方法和类方法都是可以通过类对象和类对象实例访问.但是区别是: @classmethod 是一个函数修饰符,它表 ...
- python中 和is的区别_关于python中的is和==的区别
在Python中,对象之间的比较.您可以使用= =或.但它们之间的区别是什么?比较两个实例对象是否完全相同,无论他们是同一个对象,以及他们是否占据相同的内存地址.莱布尼兹曾经说过:\u201C世界上没 ...
- Python中is和==的区别
在Python中一切都是对象. Python中对象包含的三个基本要素,分别是:id(身份标识).type(数据类型)和value(值).对象之间比较是否相等可以用==,也可以用is. is和==都是对 ...
最新文章
- 如何利用深度学习知识--快速部署高速目标检测智能小车?
- 追踪JVM中的本地内存
- 转:VirtualBox虚拟机网络连接设置的四种方式
- linux cut列截取工具使用示例
- C++数组的左右旋转的实现算法(附完整源码)
- IDOC generation debug for One Order
- 比较 Excel 中两列的差异,并用箭头标识和指向匹配结果
- 面试题: 找出二叉树上任意两个结点的最近共同父结点。
- 【C++快速入门】面向对象篇
- 工作中那些有用的工具
- mybatis insert 如何返回主键
- python并发编程之多进程
- 中兴软件笔试 c语言,【中兴通讯员工笔试试题及答案】 - 面试网
- AD(Altium Designer)软件中原理图自制模板(图框)的妙用
- macbookair有没有touchbar_Touch Bar 真的好用吗?苹果全新 MacBook Pro 触控条上手体验...
- 苹果cmsV10仿优酷模板,最新自适应苹果cms模板
- MySQL - 对数据表进行“增删查改”的基础操作 - 细节狂魔
- redis中的save配置项
- LeGo-LOAM激光雷达定位算法源码阅读(二)
- CountDownLatch闭锁,join和yield的区别
热门文章
- tensorflow入门教程和底层机制简单解说——本质就是图计算,自动寻找依赖,想想spark机制就明白了...
- ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果...
- Tomcat的配置文件server.xml叙述
- centos6下的mysql的安装
- WebService:设置服务器提供SOAP1.2的服务
- flex tree 展开树节点
- 每天OnLineJudge 之 “杨辉三角 ”
- Java课堂测试——一维数组
- 潜水ow + aow + 高氧的一些points
- 旋转动画 rotate