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

相关推荐
luoluoal2 小时前
基于python的英汉电子词典软件(源码+文档)
python·mysql·django·毕业设计·源码
我想吃烤肉肉3 小时前
Python 中 asyncio 是什么?
爬虫·python·自动化
2201_757830873 小时前
Bean原理篇
java·开发语言
咕噜签名-铁蛋3 小时前
英伟达旗下
python
草原上唱山歌3 小时前
推荐学习的C++书籍
开发语言·c++·学习
皮肤科大白3 小时前
图像处理的 Python库
图像处理·人工智能·python
asdfg12589633 小时前
小程序开发中的JS和Go的对比及用途
开发语言·javascript·golang
FL16238631293 小时前
基于yolo11实现的车辆实时交通流量进出统计与速度测量系统python源码+演示视频
开发语言·python·音视频
华如锦3 小时前
四:从零搭建一个RAG
java·开发语言·人工智能·python·机器学习·spring cloud·计算机视觉
向阳蒲公英4 小时前
Pycharm2025版本配置Anaconda步骤
python