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

相关推荐
JavaWeb学起来5 分钟前
Python学习教程(二)字符串
开发语言·python·python基础
归寻太乙9 分钟前
2026年03月27日—Python基础—Python背景知识与环境搭建
开发语言·python
88号技师9 分钟前
2026年3月新锐一区SCI-傅里叶变换优化算法Fourier transform optimizer-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
福楠12 分钟前
现代C++ | 右值引用 + std::move + noexcept
linux·c语言·开发语言·c++
独隅12 分钟前
PyTorch 的全面介绍
人工智能·pytorch·python
小陈工13 分钟前
Python后端实战:GraphQL高级应用与性能优化全解析
开发语言·人工智能·后端·python·性能优化·开源·graphql
代码探秘者15 分钟前
【大模型应用】一篇弄懂Skill
数据结构·数据库·python·算法·spring
不会写DN18 分钟前
Go 生态最快 JSON 库 - jsoniter
开发语言·golang·json
左左右右左右摇晃19 分钟前
Java线程池——核心方法解析execute / submit / shutdown
java·开发语言