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内部的优化机制

相关推荐
黑妹天下第一乖4 分钟前
小智改造实战解读-首 token 延迟去哪了:云端与端侧大模型的分段对照
开发语言·人工智能·python·嵌入式硬件·自然语言处理·iot
。小二6 分钟前
Go 泛型并发利刃:async 库深度评测——370K ops/s、零依赖、生产就绪
开发语言·javascript·golang
(Charon)10 分钟前
【C++面试】线程同步机制:互斥锁、条件变量、原子操作与读写锁
开发语言·c++·算法·面试
坊钰14 分钟前
【LangChain框架入门级】10. 文本向量与向量数据库(Embedding / Redis / Pinecone / MMR)
数据库·python·langchain·embedding
benchmark_cc23 分钟前
本地已有一年历史 K 线,第二天更新别只拉“昨天一天”
python·数据分析·pandas·量化交易·股票数据·quantdash
甜到心里的蛋糕31 分钟前
云主机部署图片/视频管理系统的实践经验
python·音视频
CV工程师丁Sir34 分钟前
ArkWeb 手记 06|window.open 与页面跳转拦截
开发语言·php·harmonyos
夜不会漫长36 分钟前
C++:内存管理
java·开发语言·c++
小园子的小菜40 分钟前
FastAPI 全方位入门实战:高性能 Python Web 框架开发指南
python·pycharm·fastapi
徐小黑ACG43 分钟前
Golang 基础01
开发语言·后端·golang