📜  Python中==和is运算符的区别

📅  最后修改于: 2022-05-13 01:55:22.370000             🧑  作者: Mango

Python中==和is运算符的区别

相等运算符(==)比较两个操作数的值并检查值是否相等。而是” 运算符检查两个操作数是否引用相同的对象(存在于相同的内存位置)。

Python3
# python3 code to
# illustrate the
# difference between
# == and is operator
# [] is an empty list
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")


Python3
list1 = []
list2 = []
 
print(id(list1))
print(id(list2))


输出:

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

Python3

list1 = []
list2 = []
 
print(id(list1))
print(id(list2))

输出:

139877155242696
139877155253640

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