我可以通过这种方式使用lambda函数按位或者列表中的所有元素吗?
lst = [1, 1, 1]
f = lambda x: x | b for b in lst
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我会得到一个SyntaxError.
tza*_*man 10
你想要reduce:
f = reduce(lambda x, y: x | y, lst)
Run Code Online (Sandbox Code Playgroud)
reduce接受二元函数和迭代函数,并在从第一对开始的所有元素之间应用运算符.注意:在Python 3中它移动到functools模块.
您也可以使用模块中的or_函数operator而不是自己编写lambda:
from operator import or_
f = reduce(or_, lst)
Run Code Online (Sandbox Code Playgroud)