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

相关推荐
未若君雅裁2 分钟前
Agent 的结构化输出,ProviderStrategy、ToolStrategy 与错误重试
python·langchain
洛兮银儿7 分钟前
pycharm选中同一个词的标记颜色的修改
ide·python·pycharm
郝学胜_神的一滴24 分钟前
Effective Python 条款 6:善用拆包告别恼人的下标索引
python·pycharm
汤姆yu25 分钟前
基于Django的学习资料共享与智能推荐系统
后端·python·django·毕业设计·学习资料共享
Freak嵌入式25 分钟前
树莓派 Pico GPIO 深度解析:从 MCU 架构到寄存器控制,底层原理与实践指南
java·开发语言·科技·单片机·嵌入式硬件·架构
张人玉32 分钟前
基于 Python + PyQt5 的水果目标检测与分割可视化系统——水果深度学习识别可视化大屏
python·深度学习·qt·目标检测·sqlite·echarts
啊啊啊啊啊!!!!33 分钟前
【c++】map和set的使用
开发语言·c++
hu92451955934 分钟前
Matlab保护源代码—P文件和exe文件详细解析
开发语言·matlab
for_ever_love__35 分钟前
python爬虫: GET请求与POST请求
开发语言·爬虫·python·网络编程
Freak嵌入式37 分钟前
实战对比:用 mpremote/Putty/MobaXterm 连接树莓派 Pico REPL,谁更省心?
java·大数据·开发语言·科技·单片机·嵌入式硬件