博客
关于我
python中is和==操作符
阅读量:804 次
发布时间:2023-03-09

本文共 419 字,大约阅读时间需要 1 分钟。

在以前的面试中,有一次被问到is的用法,当场懵逼,今天有空整理了一下这两个运算符的简单用法。

首先,==运算符是用来测试两个被引用对象是否有相同的值。举个例子:

l = [1, 2, 3]m = l[:]print(m == l)  # 输出True

这里,m是l的一个拷贝,所以m == l返回True。

而is运算符则是用来检查对象的同一性。也就是说,它会检查两个对象是否指向同一个对象。举个例子:

l = [1, 2, 3]m = [1, 2, 3]n = lprint(l is m)  # 输出Falseprint(n is l)  # 输出True

因为m是另外一个对象的引用,所以l is m返回False。

需要注意的是,在Python中,小整数和字符串会被缓存并复用。所以:

l = 2m = 2print(l is m)  # 输出True

这就是is运算符有趣的地方,它不仅仅是用来比较值,还可以用来检查对象的身份。

转载地址:http://silfk.baihongyu.com/

你可能感兴趣的文章
python3+django使用celery执行某些任务失败的解决方案
查看>>
Python3+Requests+Unittest实战系列【一】
查看>>
python3+requests+unittest实战系列【一】
查看>>
python3+requests+unittest实战系列【二】
查看>>
Python3+Requests+Unittest实战系列【二】
查看>>
python3----ASCII
查看>>
Python3-selenium自动化测试框架,结合HTMLTestRunner测试报告!
查看>>
Python3-如何自我更新作为服务运行的应用程序
查看>>
Python3.1-网格模拟概念性问题
查看>>
Python3.12 解决conda环境libstdc++版本过低问题
查看>>
python3.2批量查询IP地址区域
查看>>
Python3.5中协程和未来/任务之间的区别?
查看>>
python3.5实现socket通讯(TCP)
查看>>
python3.6 ubuntu部署nginx、 uwsgi、 django
查看>>
Python3.6.3中,functools似乎不能用
查看>>
python3.6.5+cuda9+cudnn7.1+win10+tensorflow-gpu1.9.0下载配置
查看>>
python3.6使用pickle序列化class
查看>>
python3.6入门到高阶(全栈) day027 网络通信协议 osi七层模型
查看>>
Python3.6属性错误:模块‘;异步没有属性‘;运行‘;
查看>>
python3.6版本中的python-weka-wrapper安装失败,错误代码为%1
查看>>