-1

我有两个清单。内容可能不同。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

这是正确的方法吗?还有比这更好的吗??

4

2 回答 2

3

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

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

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

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

>>> from collections import Counter
>>> a = [1,2,3,4]
>>> b = [4,3,2,1]
>>> Counter(a) == Counter(b)
True
于 2013-10-08T08:44:31.750 回答
0

你可以在这里使用setset(x) == set(y)

于 2013-10-08T08:43:34.230 回答