Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中如何区分两个元素相同的列表?_Python - Fatal编程技术网

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

在Python中如何区分两个元素相同的列表?,python,Python,假设我们有两个列表: a = [1, 2, 3] b = [1, 2, 3] 以下所有表达式都将返回True: a == b # True a == list(b) # True a == list(tuple(b)) # True a == copy.deepcopy(b) # still True 这里a和b是两个具有相同元素的不同列表对象。 我们如何区分它们?列表(使用=)逐元素进行比较,并将整数与其值进行比较。无论如何,a和b是不同的对象,将它们与is进行比较将返回False &g

假设我们有两个列表:

a = [1, 2, 3]
b = [1, 2, 3]
以下所有表达式都将返回True:

a == b  # True
a == list(b) # True
a == list(tuple(b)) # True
a == copy.deepcopy(b) # still True
这里
a
b
是两个具有相同元素的不同列表对象。 我们如何区分它们?

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

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False

比较身份。它询问
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

试试这个。id(objectName)给出了内存中对象的地址,因为它们是两个不同的对象,所以具有不同的内存地址。

您实际要做的是什么,需要这种行为?@detly它有点复杂,但我会尝试解释。我有一个数据生成器,输出包含其他列表(元素)的列表对象(Contianer)。该容器是其他容器的子容器。生成的两个容器可以是具有不同元素的相同容器,也可以是具有相同元素的两个不同容器。我需要在同一个容器中使用不同的元素进行计算。有没有更好的办法解决这个问题?谢谢!我想我应该再看一遍!谢谢因此,id()是python用来区分不同对象的。
a = [1, 2, 3]
b = [1, 2, 3]
print(id(a) == id(b))