按位使用lambda在python中使用列表的元素

时间:2015-09-04 20:30:06

标签: python python-2.7

我可以用这种方式将lambda函数用于按位 - 或列表中的所有元素吗?

lst = [1, 1, 1]
f = lambda x: x | b for b in lst

当我这样做时,我得到SyntaxError

1 个答案:

答案 0 :(得分:10)

您想要reduce

f = reduce(lambda x, y: x | y, lst)

reduce接受二元函数和迭代函数,并在从第一对开始的所有元素之间应用运算符。 注意:在Python 3中,它移动到functools模块。

您也可以使用operator模块中的or_函数,而不是自己编写lambda:

from operator import or_
f = reduce(or_, lst)