簡體   English   中英

Python:在多維數組/列表上使用不帶lambdas的map()

[英]Python: using map() without lambdas on a multidimensional array/list

我在python中有一些代碼,它在一個名為a的多維列表中的所有值按位或等於b

for i in xrange(len(a)):
    for j in xrange(len(a[i])):
        a[i][j] |= b

我的問題是,是否有任何方法只使用(map(),filter(),reduce())編寫此代碼,而不必使用lambdas或任何其他函數定義,如下例所示

map(lambda x: map(lambda y: y | b, x), a)

mapfilterreduce所有take函數(或至少callables - 即任何帶有__call__方法的函數)作為參數。 所以基本上沒有。 您必須定義一個函數或類。

我完全沒有理由為什么人們應該避免使用lambdas或列表理解,但是這里有:

import operator,functools
a = map(functools.partial(map, functools.partial(operator.or_, b)), a)

不幸的是,Python沒有簡潔的currying語法,所以你不能做像map(b |, x)這樣的東西。

我只想使用列表推導:

[y | b for x in a for y in x]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM