是否存在用于测试列表列表是否相等的首选通用解决方案。我正在尝试将此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:])])
除了检查相邻列表是否相等之外,如何/应该改善我的方法?
答案 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)