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 引用不同的对象。