【发布时间】:2011-04-20 04:14:53
【问题描述】:
我需要一个函数,如果输入列表中的所有元素使用标准相等运算符计算为彼此相等,则接收 list 并输出 True,否则输出 False。
我觉得最好遍历列表比较相邻元素,然后 AND 所有结果布尔值。但我不确定最 Pythonic 的方式是什么。
【问题讨论】:
-
与
a == b相同或与a is b相同? -
解决方案是否应该处理空列表?如果是,应该返回什么?
-
等于 a == b。应该处理空列表,并返回 True。
-
虽然我知道它比其他一些建议要慢,但我很惊讶
functools.reduce(operator.eq, a)没有被建议。 -
@user2846495
functools.reduce(operator.eq, a)不起作用。例如列表[True, False, False],它将返回((True == False) == False),即True。而函数应该返回 False (因为元素不都是相等的)
标签: python algorithm comparison