is和==的关系

Python中is和==的关系

is判断两个变量是不是指的是同一个内存地址,也就是通过id()函数判断

==判断两个变量的值是不是相同

python 复制代码
a = [1, 2, 3, 4]
b = [1, 2, 3, 4]
print(id(a))		# 2298268712768
print(id(b))		# 2298269716992
print(a is b)		# False
print(a == b)		# True

这里有一种特殊情况:

python 复制代码
a = 1
b = 1
print(id(a))	# 140705217569576
print(id(b))	# 140705217569576
print(a is b)	# True
print(a == b)	# True

原理是:当我们已有个变量是小整数或小段的字符串,再次建立相同的小整数或小字符串时,python不会重新开辟一个内存空间,而是用指针将这个变量指向我们已经创建的内存空间,这个属于python内部的优化机制

相关推荐
郝学胜-神的一滴16 小时前
Python 抽象基类深度解析:从简易模拟到 abc 模块的优雅实践
开发语言·python·pycharm
Python伍六七16 小时前
给予Python开发的【16款高效办公自动化工具合集】,告别低效加班!
开发语言·python·自动化
懷淰メ16 小时前
【AI加持】基于PyQt+YOLO+DeepSeek的舌苔情况检测系统(详细介绍)
python·yolo·目标检测·计算机视觉·pyqt·舌苔
云渊未归0616 小时前
Python获取GitCode项目信息
python·数据分析·开源·网络爬虫·gitcode
rit843249916 小时前
基于博弈论的小区分簇算法MATLAB实现
开发语言·算法·matlab
怕什么真理无穷16 小时前
C++面试5_ TCP 粘包2(工业级)
开发语言·c++·tcp/ip
qingyulee16 小时前
python redis
开发语言·redis·python
努力努力再努力wz16 小时前
【MySQL 进阶系列】拒绝滥用root:从 mysql.user 到权限校验,带你彻底理解用户管理与授权机制!
android·c语言·开发语言·数据结构·数据库·c++·mysql
超梦dasgg16 小时前
智慧充电系统订单服务Java 实现方案
java·开发语言·微服务