2017-06-08 76 views
1

回答一個問題,我注意到,我不知道如何內減少追加做後返回一個列表,例如Python的functools.reduce,如何減少列表返回一個新

import functools 

futures = [1,2,3] 
records = functools.reduce((lambda res, future: res if (res.append(str(future)) == None) else res), futures, []) 

我想要列表['1', '2', '3'],這只是一個簡單的例子,因爲我想要做的不僅僅是地圖值。

有沒有另一種方式,這可怕的,如果我把裏面的lambda?

+0

'lambda res,future:res + [str(future)]''? –

+0

@Rawing我認爲thtat是!爲什麼評論而不是答案?如果你把它作爲答案,我會很樂意接受 –

回答

2

您不必突變結果列表在您的lambda;作爲結果,reduce返回值。所以你的lambda可以像

lambda res, future: res+[str(future)]