检查两个列表的内容是否相同的最佳方法?

时间:2013-10-08 08:31:41

标签: python arrays list

我有两个清单。内容可能不同。如果两个列表具有相同的内容,我是检查并返回True的最佳方法。例如:[3,4,5][4,3,5]则必须返回True

这是我试过的。

>>> x=[3,4,5]
>>> y=[4,3,5]
>>> x==y
False
>>> x is y
False
>>> x in y
False

它不起作用, 但当我用sort()尝试这些时,它起作用了:

>>> x.sort()
>>> y.sort()
>>> x==y
True

这是正确的方法吗?有什么比这更好的了吗?

2 个答案:

答案 0 :(得分:3)

您已经有了一种更好的方法来确定两个列表中的内容是否相同。

如果你的条件是内容必须相同,但顺序是可选的,那么使用sort()并比较它们是一个非常好的解决方案。

或者你可以做一个不涉及对两个列表进行排序然后比较它们的方法。这假设列表包含int s。但是对于其他数据类型可以做类似的事情。

使用Counter您不需要对它们进行排序,并且您可以确保它们具有相同数量的每个元素。

>>> from collections import Counter
>>> a = [1,2,3,4]
>>> b = [4,3,2,1]
>>> Counter(a) == Counter(b)
True

答案 1 :(得分:0)

您可以在此处使用setset(x) == set(y)