python == 与 is区别

刷到一个面试题 python中 == 与 is 的区别

根据以往的经验,这个问题应该考察的是运算符根据地址 还是值进行比较的

复制代码
s1 = ['a']
s2 = ['a']
s3 = s1
print(s1 == s2)  # True  值相等
print(s1 == s3)  # True  值相等
print(s1 is s2)  # False 值相等,引用地址不相等
print(s1 is s3)  # True  值相等,引用地址相等

根据上面的情况,得到的结论:

  • ==:值相等性判断
  • is:判断两个标识符是不是引用自一个对象,x is y , 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

再看个例子

复制代码
>>> str1='sten_waves'
>>> str2='sten_waves'
>>> str1 is str2
True

先说一下前面的结论是对的,这个例子中str1和str2的地址是相同的,原因是内存驻留机制,可以参考:Python中的字符串驻留机制_在python中,任意长的字符串都遵守驻留机制。-CSDN博客

相关推荐
追求源于热爱!几秒前
记10,Gradio介绍
python
黎雁·泠崖21 分钟前
Java 包装类:基本类型与引用类型的桥梁详解
java·开发语言
破晓之翼34 分钟前
Skill原理及国内大模型实践
人工智能·python
IT管理圈38 分钟前
Cursor Rules 实战指南—让AI按你的规矩写代码
python
Java后端的Ai之路43 分钟前
微调模型成本太高,用RAG技术,低成本实现AI升级
开发语言·人工智能·python·rag·ai升级
2401_876907521 小时前
TYPE-C插拔力过大原因与解决方法
c语言·开发语言
喵手1 小时前
Python爬虫实战:从零构建书籍价格情报数据库(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·csv导出·构建书籍价格情报·书籍价格采集
勾股导航1 小时前
蚁群优化算法
人工智能·pytorch·python
小锋java12341 小时前
分享一套【优质Python源码】基于Python的Django学生就业管理系统
python
一个处女座的程序猿O(∩_∩)O1 小时前
Python字典详解
开发语言·python