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***14903 分钟前
C++在系统中的编译优化
开发语言·c++
田姐姐tmner5 分钟前
Python切片
开发语言·python
oioihoii8 分钟前
C++程序执行起点不是main:颠覆你认知的真相
开发语言·c++
t***316521 分钟前
爬虫学习案例3
爬虫·python·学习
周杰伦fans37 分钟前
C# 中的**享元工厂**模式
开发语言·数据库·c#
u***u68543 分钟前
C++在系统中的异常处理
java·开发语言·c++
爱学测试的雨果1 小时前
收藏!软件测试面试题
开发语言·面试·职场和发展
AI小云1 小时前
【数据操作与可视化】Pandas数据处理-其他操作
python·pandas
大佬,救命!!!1 小时前
更换适配python版本直接进行机器学习深度学习等相关环境配置(非仿真环境)
人工智能·python·深度学习·机器学习·学习笔记·详细配置
安然无虞1 小时前
JMeter性能测试工具·下
开发语言·测试工具·jmeter