相关疑难解决方法(0)

检查列表中的所有元素是否相同

我需要以下功能:

输入:alist

输出:

  • True 如果输入列表中的所有元素使用标准相等运算符评估为彼此相等;
  • False 除此以外.

性能:当然,我不希望招致任何不必要的开销.

我觉得最好是:

  • 遍历列表
  • 比较相邻元素
  • 以及AND所有结果布尔值

但我不确定最恐怖的方式是什么.


编辑:

谢谢你所有的好答案.我评价了几个,而且很难在@KennyTM和@Ivo van der Wijk解决方案之间做出选择.

缺少短路功能只会对早期具有不相等元素的长输入(超过约50个元素)造成伤害.如果这种情况经常发生(通常取决于列表的长度),则需要进行短路.最好的短路算法似乎是@KennyTM checkEqual1.然而,它为此付出了巨大的代价:

  • 高达20倍的性能几乎相同的列表
  • 短名单上的表现高达2.5倍

如果早期不等元素的长输入没有发生(或很少发生),则不需要短路.然后,到目前为止最快的是@Ivo van der Wijk解决方案.

python algorithm comparison

351
推荐指数
10
解决办法
28万
查看次数

查找2D数组Python的长度

如何查找二维数组中有多少行和列?

例如,

Input = ([[1, 2], [3, 4], [5, 6]])`
Run Code Online (Sandbox Code Playgroud)

应显示为3行和2列.

python arrays

77
推荐指数
4
解决办法
30万
查看次数

标签 统计

python ×2

algorithm ×1

arrays ×1

comparison ×1