Python:在多维数组/列表上使用没有 lambda 的 map()

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)

phi*_*hag 5

我认为完全没有理由避免使用 lambda 表达式或列表推导式,但这里有:

import operator,functools
a = map(functools.partial(map, functools.partial(operator.or_, b)), a)
Run Code Online (Sandbox Code Playgroud)