有没有方法在Python中不使用循环就判断两个列表是否完全相同?
假设我有:
a = [1, 2, 3]
b = [1, 2, 3]
有没有办法测试这两个列表,看它们是否相同,而不需要逐个检查每个条目呢?
我在想……我知道要检查两个变量是否相同,我可以用:
id(a)
但是这样不行,因为它们的ID不同。那么有没有什么方法,比如校验和,或者Python存储表格值的方式,让我可以简单地比较两个变量呢?
3 个回答
0
== 运算符应该可以在列表上使用
这个输出是在某些版本的 Python 中出现的,我不知道具体是哪个版本。
>>> import numpy as np
>>> x = [1, 2, 3, 4]
>>> y = [1, 2, 3, 4]
>>> z = [1, 2, 2, 4]
>>> x == y
[True, True, True, True]
>>> x == z
[True, True, False, True]
之后,只需使用 numpy 来判断整个列表。
>>> np.all(x == y)
True
>>> np.all(x == z)
False
或者如果只需要判断单个相似性:
>>> np.any(x == z)
True
3
在列表上,==
这个操作符应该按预期工作。
>>> x = [1, 2]
>>> y = [1, 2]
>>> x == y
True
11
为什么==
不管用呢?
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a == b
True