Python中运算符 is 和 == 的区别
Python 中有个很有趣的运算符–is,其作用看似和==是一样的,但实际上并非如此。
通过一个示例来看一下两者的去区别:
>>> a = b = [1,2,3]
>>> c = [1,2,3]
>>> a == b
True
>>> a == c
True
>>> a is b
True
>>> a is c
False
前几个示例没啥问题,但是最后一个a is c 返回 False,为什么会这样呢?因为 is 检查的是两个对象是否相同,而不是相等,变量 x 和 y 指向同一个列表,而c 指向另一个列表,虽然两个的值都是一样,但是并不是同一个对象,所以这里 a is c 返回 False
再来看个示例,可以更加说明这一点:
>>> a = [1,2,3]
>>> b = [2,1]
>>> a is not b
True
>>> del a[2]
>>> a
[1, 2]
>>> b.reverse()
>>> b
[1, 2]
>>> a==b
True
>>> a is b
False
从上例可以看到,a 和 b 一开始就不是同一个列表值,所以 a is not b自然返回的是 False,经过调整将a 和 b 的值修改成一样,这时候 a==b返回 True,而 a is b 依然返回False。
很显然这两个列表相等,但并不相同。
总之,==是用来检查两个对象是否相等,而 is 用来检查两个对象是否相同。
注意:不要将 is 用于数字或字符串这种不可变的基本值。鉴于 Python内部处理这些对象的方式,这种做法的接口将会不可预测。
本书知识点来源于《Python 基础教程》第三版。
Python中运算符 is 和 == 的区别相关推荐
- python中raise和raise e区别_python raise和assert的区别
python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...
- python中break和continue的区别
python中break和continue的区别 break 结束for 或者while 循环 后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...
- python中bytearray和java中byte[]的区别_Python经典面试题:说说Python中xrange和range的区别?...
昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...
- python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法
python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录
- python有关迭代器和生成器的面试题_【面试题 | Python中迭代器和生成器的区别?】- 环球网校...
[摘要]今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题.如果参考答案不够好,或者有错误的话,麻烦大家可以在留言 ...
- python中函数和方法的区别
本篇内容主要介绍从几个维度来介绍下python中函数和方法的区别: 首先,从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函 ...
- Python 中各种imread函数的区别与联系
Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误.如 ...
- Python中深拷贝与浅拷贝的区别?
往期面试题: 列举Python中的标准异常类? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 说说Python模块主要分哪三类? 废话不多说,开始今天的题目: 问:说说Pyt ...
- 【Python面试】 说说Python中xrange和range的区别?
往期面试题: 谈谈对 Python 和其他语言的区别? 说说4种常用编码的区别? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 废话不多说,开始今天的题目: 问:说说Pyth ...
最新文章
- python升级或者其他原因把yum搞坏了
- 自然语言12_Tokenizing Words and Sentences with NLTK
- 拟合一条曲线_数据预测与曲线拟合
- 阿里巴巴:全链路压测体系建设方案的思考与实践
- cURL在Web渗透测试中的应用
- 系统测试:单元测试相关知识笔记
- linux mysql odbc驱动安装_MySQL ODBC 驱动安装
- EmptyPage(空白页组件)原理与使用
- 基于iOS 10、realm封装的下载器
- 深入浅出计算机组成原理01:计算机概要与技术
- C# interview questions--- 国外大公司c#技术面试必看(总结贴一)
- 人工智能数学基础之高等数学
- Jmeter(三十八)while控制器实现ssh三次重连
- 计算机维修5级,什么是计算机硬件的一级维修二级维修三级维修
- 数据分析法、数据分析方法论总结
- 信息系统项目管理师自学笔记(二十二)—— 网络应用与管理
- ARM ADS中的AXD 调试经验集锦
- 如何优雅地重启go程序--endless篇
- 百度地图、高德地图的数据下载
- Android 在build.gradle文件中读取json文件
热门文章
- 用代码,打造创意新世界!【Innovation 2021】网易应用创新开发者大赛正式开赛!
- github加速-解决GitHub访问速度很慢的问题
- 使用Python将Excel中的数据导入到MySQL
- Vue第二章,在项目中使用element-ui组件
- 一比特控制所有:通过一比特绕过Windows 10保护
- fail2ban安全设置
- Javaweb中利用kaptcha生成验证码
- 《UML用户指南第二版》再次温读笔记(一)(downmoon)
- ORACLE表空间的相关操作
- linux主机操作性日志恢复测试,Linux主机操作系统加固规范标准[详].doc