检查列表中的所有元素是否相同
我需要以下功能:
输入*alist
输出量:
True
如果输入列表中的所有元素使用标准相等运算符计算为相等;False
不然的话。
性能:当然,我不愿意承担任何不必要的开销。
我觉得最好是:
但我不知道什么是最有效的方法。
编辑:
谢谢你给我这么好的答案。我对几个问题进行了评估,很难在@KennyTM和@Ivo van der Wijk解决方案之间做出选择。
短路特性的缺乏只会对长输入(超过50个元件)造成伤害,而这些输入在早期就有不相等的元件。如果这种情况发生得足够频繁(取决于列表的长度),则需要短路。最好的短路算法似乎是@KennyTM。checkEqual1
..但是,它为此付出了很大的代价:
- 性能最高可达20倍-几乎相同的列表
- 在短名单上的性能最高可达2.5倍
如果早期不平等元素的长输入没有发生(或很少发生),则不需要短路。到目前为止,最快的是@IvovanderWijk解决方案。