Python的等号运算符有什么区别?
Python提供了两个非常相似的用于比较的等号运算符:
- 双等号(
==
),也称为等号运算符 is
关键字,也称为身份运算符
虽然它们相似,但双等号(==
)和is
关键字用于不同的比较目的,并产生不同的结果。
两者之间的主要区别在于,is
关键字检查引用相等性,而双等号(==
)运算符检查值相等性。换句话说,如果两个变量都引用内存中的同一个对象(即身份),is
将返回True
,而双等号运算符将在两个对象具有相同值时求值为True
。
以下是一些示例,以消除任何困惑:
a = [1, 2, 3]
b = a
c = [x for x in a]
print([
a == b, # True
a is b, # True
a == c, # True
a is c # False
])
x = 'hi'
y = x
z = 'HI'.lower()
print([
x == y, # True
x is y, # True
x == z, # True
x is z # False
])