Python中如何用简洁方式(单行代码)判断数组所有元素是否相同
判断数组所有元素是否相同的单行简洁实现
嘿,针对你这个判断数组内所有元素是否相同的需求,这里有几个非常简洁的单行实现方案,比循环写法更清爽:
利用集合去重特性:
集合会自动剔除重复元素,所以只要把数组转成集合后长度为1,就说明所有元素都相同:len(set(x)) == 1这个写法超级简洁,对于你的元素范围(仅0-4的整数)完全适用,哪怕数组长度到300也能高效处理。
使用all()函数遍历检查:
通过生成器表达式检查每个元素是否等于数组的第一个元素,all()会在遇到第一个不相等的元素时直接终止,效率也很高:all(ele == x[0] for ele in x)这种写法不需要额外创建集合,逻辑更直观,一眼就能看出来是在做全相等检查。
如果你的数组可能为空(虽然你提到长度是5或300等,但还是提一下),两种方法的表现会有区别:len(set([])) == 1会返回False,而all(ele == x[0] for ele in [])会返回True,根据你的实际场景选择就行。
内容的提问来源于stack exchange,提问作者user84592
相关产品推荐
相关产品推荐

