我有两个清单。内容可能不同。如果两个列表具有相同的内容,我是检查并返回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
这是正确的方法吗?有什么比这更好的了吗?
答案 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)
您可以在此处使用set
:
set(x) == set(y)