列表中的所有列表是否相等

时间:2019-02-11 13:04:51

标签: python

是否存在用于测试列表列表是否相等的首选通用解决方案。我正在尝试将此example更普遍地应用于列表列表。我目前有以下解决方案,其中_list是未知长度/元素数的通用列表。

all(x == y for x, y in zip(_list, _list[1:]))

或者顺序无关紧要。

all([sorted(x) == sorted(y) for x, y in zip(_list, _list[1:])])

除了检查相邻列表是否相等之外,如何/应该改善我的方法?

2 个答案:

答案 0 :(得分:2)

我相信,足够简单和快速的方式将会

all(a[0] == ax for ax in a)

您不需要成对比较所有元素,捷径就是比较1与所有其他元素。实际上,最好与所有(ax in a进行比较,而不要与“针对其他”(ax in a[1:])进行比较,因为切片可能比单个比较耗费更多的计算资源。视您的数据而定,但总的来说,我建议您不要打扰。

答案 1 :(得分:-2)

使用排序的内置函数:例如,如果您有两个列表x和y,则进行比较:  sorted(x)== sorted(y)

list1 = [7,9,8]
list2 = [8,7,9]
sorted(list1)==sorted(list2)