Kullanan bir çözelti azaltmak :
from functools import reduce
f = lambda x: f"f({x})"
g = lambda x: f"g({x})"
data = [1, 2, 3]
reduce(lambda acc, x: acc + [f(x), g(x)], data, [])
Bir liste anlayışı olmasa da, bu, soruna yaklaşmanın işlevsel bir yoludur. Bir listeyi anlama, esasen map
veri üzerinde çalışmanın başka bir yoludur , ancak eşlemenin giriş ve çıkış arasında bire bir olmadığı bu durumda, çıktının reduce
nasıl üretilebileceğine dair biraz kıpırdama odası sağlar.
Genel olarak, for
formun herhangi bir uygulaması:
result = []
for n in some_data:
result += some_operation()
(Yani bir liste veya benzer veri yapısı üzerinde bir yan etki oluşturması amaçlanan döngüler için)
Bildirime dayalı bir map/reduce/filter
uygulamaya dönüştürülebilir .