如何在Python中区分具有相同元素的两个列表?

low*_*att -1 python

假设我们有两个列表:

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)

这里ab具有相同的元素2个不同的列表对象.我们如何区分彼此?

Joh*_*ooy 6

is比较身份.它要求都ab同一个对象

>>> 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)


eum*_*iro 5

==逐个元素地比较(使用)列表,并将整数与它们的值进行比较.无论如何,a并且b是不同的对象并且将它们进行比较is将返回False.

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)