Python: using map() without lambdas on a multidimensional array/list
我在python中有一些代码,它在一个名为a的多维列表中的所有值按位或等于b
1 2 3 | for i in xrange(len(a)): for j in xrange(len(a[i])): a[i][j] |= b |
我的问题是,是否有任何方法只使用(map(),filter(),reduce())编写此代码,而不必使用lambdas或任何其他函数定义,如下例所示
1 | map(lambda x: map(lambda y: y | b, x), a) |
我完全没有理由为什么人们应该避免使用lambdas或列表理解,但是这里有:
1 2 | import operator,functools a = map(functools.partial(map, functools.partial(operator.or_, b)), a) |
不幸的是,Python没有简洁的currying语法,所以你不能做像
我只想使用列表推导:
1 | [y | b for x in a for y in x] |