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

相关推荐
DFT计算杂谈1 分钟前
VASP新手入门: IVDW 色散修正参数
linux·运维·服务器·python·算法
庚昀◟10 分钟前
ClaudeCode安装教程,基础使用、进阶推荐
人工智能·python·ai
froginwe1113 分钟前
Vue.js 监听属性
开发语言
c++逐梦人14 分钟前
五种IO模型与⾮阻塞IO
开发语言·网络
翎沣16 分钟前
C++面向对象三大特性
开发语言·c++
驭渊的小故事17 分钟前
java中的进程的详细解析
java·开发语言
deephub21 分钟前
告别脆弱的单体应用,用多智能体网络构建稳定的生产力工具
人工智能·python·大语言模型·多智能体
烟雨江南aabb22 分钟前
Python第六弹:python爬虫篇:什么是爬虫
开发语言·爬虫·python
沐知全栈开发24 分钟前
Servlet 文件上传详解
开发语言
MomentYY26 分钟前
第 1 篇:Agent 到底是什么?别被概念唬住了
人工智能·python·agent