是否有一个首选的通用解决方案来测试列表列表的相等性。我正在尝试应用此 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:])])
除了检查相邻列表是否相等之外,这种方法可以/应该如何改进?
最佳答案
我相信,简单且足够快的方法就是
all(a[0] == ax for ax in a)
您不需要成对比较所有元素,最简单的方法是将 1 与所有其他元素进行比较。实际上,最好与所有(ax in a
)进行比较,而不是“与其他”(ax in a[1:]
)进行比较,因为切片很可能更有效单一比较计算密集。不过,取决于您的数据,但总的来说,我建议不要打扰。
关于python - 列表中的所有列表都相等吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54631294/