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

相关推荐
Wise玩转AI几秒前
从LLM到Agent:技术迁移的必然趋势
人工智能·python·语言模型·ai智能体
“愿你如星辰如月”7 分钟前
C++11核心特性全解析
开发语言·c++
三毛人7 分钟前
php usdt地址生成
开发语言·php
前端之虎陈随易8 分钟前
基于Go重写的TypeScript 7可以用了
开发语言·golang·typescript
ada7_12 分钟前
LeetCode(python)——94.二叉
python·算法·leetcode·链表·职场和发展
广都--编程每日问13 分钟前
c++右键菜单统一转化文件为utf8编码
c++·windows·python
ZAz_18 分钟前
DAY 28 元组和OS模块
python
cici1587430 分钟前
MATLAB/Simulink单相光伏并网逆变器仿真
开发语言·matlab
Dev7z31 分钟前
基于MATLAB小波分析的图像增强算法及其仿真实现
开发语言·matlab