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

相关推荐
风筝在晴天搁浅1 分钟前
解题代码清爽版
java·开发语言
2601_962300812 分钟前
机器学习的理想基石
人工智能·python·机器学习·编程语言·数据处理
Java后端的Ai之路9 分钟前
21、Python - 命令模式
开发语言·人工智能·python·命令模式·外观模式
astronautyi14 分钟前
Go 运行时内存分配与 GC 位图深度剖析
开发语言·后端·golang
2601_9620779818 分钟前
机器学习及其Python实践
pytorch·python·机器学习·tensorflow·scikit-learn
techdashen20 分钟前
Go 中如何处理错误
开发语言·后端·golang
小柯南敲键盘24 分钟前
跨马翻译批量图片视频字幕翻译,跨境电商AI智能抠图一站式工具
人工智能·python·音视频·xcode
2601_9622955832 分钟前
Python中正则表达式的知识汇总分享
python·正则表达式·模块·语法·匹配
ellenwan202635 分钟前
量化实现的难点,常在规则和流程
人工智能·python
2601_9622986737 分钟前
正则表达式引擎 哪些
java·python·perl·pcre·正则表达式引擎