Solusi dengan menggunakan pengurangan :
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, [])
Meskipun bukan pemahaman daftar, ini adalah cara fungsional untuk mendekati masalah. Pemahaman daftar pada dasarnya adalah cara lain untuk mapmengolah data, tetapi dalam kasus ini di mana pemetaan tidak satu lawan satu antara masukan dan keluaran, reducememungkinkan beberapa ruang gerak dengan bagaimana keluaran dapat dihasilkan.
Secara umum, setiap forimplementasi bentuk:
result = []
for n in some_data:
result += some_operation()
(Yaitu untuk loop yang dimaksudkan untuk menghasilkan efek samping pada daftar atau struktur data serupa)
Dapat direfraktorisasi menjadi map/reduce/filterimplementasi deklaratif .