有没有方法在Python中不使用循环就判断两个列表是否完全相同?

3 投票
3 回答
1548 浏览
提问于 2025-04-17 03:04

假设我有:

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

撰写回答