📅  最后修改于: 2023-12-03 15:04:39.127000             🧑  作者: Mango
在Python中,可以使用“is”和“==”运算符来比较对象。这两个运算符看似相同,但在比较对象时却有截然不同的作用。
“==”运算符用于比较两个对象的值是否相等。当两个对象的值相等时,返回True,否则返回False。例如:
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True
在上面的例子中,虽然a和b是不同的对象,但它们的值是相等的,所以a == b返回True。
“is”运算符用于比较两个对象是否为同一个对象(即它们是否指向相同的内存地址)。当两个对象指向同一个内存地址时,返回True,否则返回False。例如:
a = [1, 2, 3]
b = a
print(a is b) # True
在上面的例子中,a和b指向同一个内存地址,所以a is b返回True。
那么“is”和“==”有何区别呢?简单来说,==比较的是两个对象的值是否相等,而is比较的是两个对象的id是否相等。具体如下:
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True
a = [1, 2, 3]
b = [1, 2, 3]
print(a is b) # False
a = [1, 2, 3]
b = a
print(a is b) # True
需要注意的是,虽然大多数情况下,具有相等的值的两个对象的id也会相等,但这并非一定如此。例如:
a = 1000
b = 1000
print(a == b) # True
print(a is b) # False
在上面的例子中,a和b具有相等的值,但因为它们是不同的对象,所以a is b返回False。