python reduce来检查所有元素是否相等

Jac*_*ack 8 python reduce

假设a = [[1,2,3],[1,2,3]] reduce(lambda x,y: x==y, a)回归True

但如果a = [[1,2,3],[1,2,3],[1,2,3]] reduce(lambda x,y: x==y, a)回归False

为什么在第二种情况下,结果是False

请帮忙

谢谢

Ósc*_*pez 7

试试这个,它适用于任何大小的列表:

all(e == a[0] for e in a)
Run Code Online (Sandbox Code Playgroud)

请注意,您提议的解决方案使用reduce不适用于两个以上的项目,因为第一次比较后的累计值是True,并且您将True与该点上的每个元素进行比较,显然这不起作用.


C2H*_*5OH 5

并没有减少清单。lambda 的返回值是Trueor False,然后将其用作输入参数以进一步调用同一 lambda 函数。所以你最终将布尔值与列表进行比较。因此,归约函数应该返回与其输入参数相同的类型。

您可能正在寻找其他建议的答案:使用all().