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

相关推荐
xyq202413 小时前
C++ 变量作用域
开发语言
SKY -dada13 小时前
Understand 使用教程
开发语言·c#·流程图·软件构建·敏捷流程·代码复审·源代码管理
qq_4142565713 小时前
Redis如何解决哨兵通知延迟问题_优化客户端连接池动态刷新拓扑的订阅监听机制
jvm·数据库·python
m0_6765443813 小时前
MySQL如何配置不同级别的事务锁_调整innodb_locks_unsafe_for_binlog
jvm·数据库·python
dFObBIMmai13 小时前
mysql索引区分度不足如何解决_mysql多列索引组合优化
jvm·数据库·python
神明93113 小时前
SQL处理JOIN查询中数据倾斜的问题_散列连接键或增加缓存
jvm·数据库·python
m0_5913647313 小时前
c++ 实时傅里叶变换stft c++如何进行音频的频谱分析
jvm·数据库·python
2401_8323655213 小时前
MySQL无法修改数据表结构_检查磁盘空间与元数据锁
jvm·数据库·python
xxjj998a13 小时前
Laravel3.x:奠定现代PHP框架的重要里程碑
android·开发语言·php
小熊Coding13 小时前
懂车帝汽车销售数据可视化分析系统
python·信息可视化·django·汽车·数据可视化分析·懂车帝·汽车销售数据分析