2017-06-08 2 views
1

Beantworten einer Frage, die ich feststellen zu reduzieren, dass ich nicht weiß, wie man eine Liste zurückzukehren, nachdem in einem reduzieren, zum BeispielPython functools.reduce, wie eine Liste eine Rückkehr ein neues

tun append
import functools 

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

Ich möchte die Liste ['1', '2', '3'], es ist nur ein minimales Beispiel, denn ich möchte mehr tun als Werte zuordnen.

Gibt es eine andere Möglichkeit, dass diese schreckliche, wenn ich das Lambda setzen?

+0

Wie wäre es mit 'Lambda res, Zukunft: res + [str (Zukunft)]'? –

+0

@Rawing Ich denke thatat ist! Warum ein Kommentar und keine Antwort? Wenn Sie es als Antwort nennen, werde ich gerne annehmen –

Antwort

2

Sie müssen nicht mutieren die Ergebnisliste in Ihrem Lambda; reduce nimmt den Rückgabewert der Funktion als Ergebnis. So kann Ihr Lambda so einfach sein wie

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