标签: python python-2.7
我可以用这种方式将lambda函数用于按位 - 或列表中的所有元素吗?
lst = [1, 1, 1] f = lambda x: x | b for b in lst
当我这样做时,我得到SyntaxError。
SyntaxError
答案 0 :(得分:10)
您想要reduce:
reduce
f = reduce(lambda x, y: x | y, lst)
reduce接受二元函数和迭代函数,并在从第一对开始的所有元素之间应用运算符。 注意:在Python 3中,它移动到functools模块。
functools
您也可以使用operator模块中的or_函数,而不是自己编写lambda:
operator
or_
from operator import or_ f = reduce(or_, lst)