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博客

相关推荐
快乐得小萝卜4 分钟前
记录: python-cpp数据验证
开发语言·python
lsx2024065 分钟前
C语言中的递归
开发语言
Fleshy数模6 分钟前
从基础到实战:词向量转换在评价文本分析中的应用
爬虫·python·机器学习
敏编程8 分钟前
一天一个Python库:requests-oauthlib - 轻松实现OAuth授权与认证
python
福大大架构师每日一题8 分钟前
2026年3月TIOBE编程语言排行榜,Go语言排名第16,Rust语言排名14。为什么 TIOBE 指数仍然依赖搜索引擎?
开发语言·搜索引擎·rust·tiobe
摆烂小白敲代码9 分钟前
【数据结构与算法】汉诺塔问题(C++)
c语言·开发语言·数据结构·c++·算法·hanoi·汉诺塔问题
Bert.Cai11 分钟前
Python字符串strip函数作用
开发语言·python
不会写DN13 分钟前
Go中的interface的两大用法
开发语言·后端·golang
薛不痒13 分钟前
大模型(1):ollama&大模型相关介绍&开源平台&模型下载
人工智能·windows·git·python·深度学习
赴前尘14 分钟前
不是再包一层 Tool Calling,而是把异步真正做进 Agent Runtime:loopa
开发语言·后端·golang