相等运算符 (==) 是 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")

输出:

True
False
True
False
  • 如果条件为“真”,则第一个的输出,因为 list1 和 list2 都是空列表。
  • 其次如果条件显示为“False”,因为两个空列表位于不同的内存位置。因此 list1 和 list2 指的是不同的对象。我们可以使用python 中的id()函数来检查它,它返回一个对象的“身份”。
  • 如果条件为“真”,则第三个的输出,因为 list1 和 list3 都指向同一个对象。
  • 如果条件为“False”,则第四个的输出,因为两个列表的串联总是会产生一个新列表。

示例 2

list1 = []
list2 = []

print(id(list1))
print(id(list2))

输出: 

139877155242696
139877155253640

这表明 list1 和 list2 引用了不同的对象。

感谢大家的阅读,有什么问题欢迎在评论区留言