Python 等价于 sum() 使用 xor()

2022-01-09 00:00:00 python sum xor

问题描述

我喜欢 Python 的 sum 函数:

I like the Python sum function :

>>> z = [1] * 11
>>> zsum = sum(z)
>>> zsum == 11
True

我想要使用 xor (^) 而不是添加 (+) 的相同功能.我想使用地图.但我无法弄清楚如何做到这一点.有什么提示吗?

I want the same functionality with using xor (^) not add (+). I want to use map. But I can not work out how to do this. Any hints?

我对此不满意:

def xor(l):
    r = 0
    for v in l: r ^= v
    return v

我想要一个使用地图的 1 班轮.提示?

I want a 1 liner using map. Hints?


解决方案

zxor = reduce(lambda a, b: a ^ b, z, 0)

import operator
zxor = reduce(operator.xor, z, 0)

相关文章