有很多人将 python 中的 is 和 == 二者等价,但这是不对的~

1. is

is 针对的是对象的本身

2. ==

== 针对的是对象的值

3. 代码

#定义两个数值相同的列表
li1 = [1, 2, 3, 4]
li2 = [1, 2, 3, 4]
# 判断 == 号下左右两端是否相等
print(li1 == li2) 
# 判断 is 逻辑符号下左右两端是否相等
print(li1 is li2) 
# 打印二者存储的地址
print(id(li1), id(li2)) 

4.返回结果

is和==.png

可以看到而这指向的地址并不相同,验证了前面所说的is指向对象本身,而==只针对对象的值