wee*_*eeb 4 python lambda functional-programming
我在 python 中有一些代码,它按位或等于 b 到一个称为 a 的多维列表中的所有值
for i in xrange(len(a)):
for j in xrange(len(a[i])):
a[i][j] |= b
Run Code Online (Sandbox Code Playgroud)
我的问题是,有没有什么方法可以只使用 (map()、filter()、reduce()) 编写此代码,而不必使用 lambdas 或任何其他函数定义,如下例所示
map(lambda x: map(lambda y: y | b, x), a)
Run Code Online (Sandbox Code Playgroud)
我认为完全没有理由避免使用 lambda 表达式或列表推导式,但这里有:
import operator,functools
a = map(functools.partial(map, functools.partial(operator.or_, b)), a)
Run Code Online (Sandbox Code Playgroud)