假设我们有两个列表:
a = [1, 2, 3]
b = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
以下所有表达式都将返回True:
a == b # True
a == list(b) # True
a == list(tuple(b)) # True
a == copy.deepcopy(b) # still True
Run Code Online (Sandbox Code Playgroud)
这里a并b具有相同的元素2个不同的列表对象.我们如何区分彼此?
is比较身份.它要求都a和b同一个对象
>>> a=[1, 2, 3]
>>> b=list(a)
>>> id(a)
3065460108L
>>> id(b)
3073003244L
>>> id(a) == id(b) # Equivalent to a is b
False
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)
==逐个元素地比较(使用)列表,并将整数与它们的值进行比较.无论如何,a并且b是不同的对象并且将它们进行比较is将返回False.
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)