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

相关推荐
古城小栈3 小时前
Java 在 Web3 时代的新定位
java·开发语言·web3
何中应3 小时前
【面试题-5】设计模式
java·开发语言·后端·设计模式·面试题
盼哥PyAI实验室4 小时前
12306反反爬虫策略:Python网络请求优化实战
网络·爬虫·python
Kiri霧4 小时前
Go包基础与使用指南
开发语言·后端·golang
deephub4 小时前
DeepSeek-R1 与 OpenAI o3 的启示:Test-Time Compute 技术不再迷信参数堆叠
人工智能·python·深度学习·大语言模型
历程里程碑4 小时前
C++ 5:模板初阶
c语言·开发语言·数据结构·c++·算法
力江4 小时前
FastAPI 最佳架构实践,从混乱到优雅的进化之路
python·缓存·架构·单元测试·fastapi·分页·企业
Raink老师4 小时前
第 11 章 错误处理与异常
python
Lululaurel4 小时前
AI编程文本挖掘提示词实战
人工智能·python·机器学习·ai·ai编程·提示词
‿hhh4 小时前
学习笔记整理(部分)
java·开发语言·笔记·学习·mvc