在 Python3 中减少错误的 lambda

lambda with reduce error in Python3

我正在尝试按如下方式使用 reduce:

>>> reduce(lambda z,(x,y): (z+1) if x == y else z, [(3, 4), (5, 2), (4, 4), (5, 5)], 0)

在 Python 2.7 中我得到了预期的结果:

2

而完全相同的行 returns 在 Python 3.5 中出现以下错误:

File "<stdin>", line 1
reduce(lambda z,(x,y): (z+1) if x == y else z, [(3, 4), (5, 2), (4, 4), (5, 5)], 0)
                ^

SyntaxError: invalid syntax

关于 Python 3 的语法应该有什么建议? 谢谢。

元组模式匹配 已从 python 3 中删除,因此尝试:

reduce(lambda z, x: (z+1) if x[0] == x[1] else z, [(3, 4), (5, 2), (4, 4), (5, 5)], 0)

正如@cᴏʟᴅsᴘᴇᴇᴅ评论的那样,检查PEP3113