Python 教程之运算符(13)Python中==和is运算符的区别
原创
©著作权归作者所有:来自51CTO博客作者海拥haiyong的原创作品,请联系作者获取转载授权,否则将追究法律责任
相等运算符 (==) 是 Python 中的比较运算符,用于比较两个操作数的值并检查值是否相等。而“ is” 运算符是标识运算符,用于检查两个操作数是否引用同一个对象(存在于同一个内存位置)。
插图:
# 等式算子
>>> a=10
>>>b=10
>>>a==b
True
>>>a=10
>>>id(a)
2813000247664
>>>b=10
2813000247664 # a 和 b 都指向同一个对象
>>>a is b
True
>>>c=a # 这里变量 a 被分配给新变量 c,它保存相同的对象和相同的内存位置
>>> id(c)
2813000247664
>>>a is c
True
示例 1:
# python3 代码说明 == 和is操作符[]是空列表的区别
list1 = []
list2 = []
list3=list1
if (list1 == list2):
print("True")
else:
print("False")
if (list1 is list2):
print("True")
else:
print("False")
if (list1 is list3):
print("True")
else:
print("False")
list3 = list3 + list2
if (list1 is list3):
print("True")
else:
print("False")
输出:
- 如果条件为“真”,则第一个的输出,因为 list1 和 list2 都是空列表。
- 其次,如果条件显示为“False”,因为两个空列表位于不同的内存位置。因此 list1 和 list2 指的是不同的对象。我们可以使用python 中的id()函数来检查它,它返回一个对象的“身份”。
- 如果条件为“真”,则第三个的输出,因为 list1 和 list3 都指向同一个对象。
- 如果条件为“False”,则第四个的输出,因为两个列表的串联总是会产生一个新列表。
示例 2
list1 = []
list2 = []
print(id(list1))
print(id(list2))
输出:
139877155242696
139877155253640
这表明 list1 和 list2 引用了不同的对象。
感谢大家的阅读,有什么问题欢迎在评论区留言