कम करने का उपयोग कर एक समाधान :
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, [])
जबकि सूची की समझ नहीं है, यह समस्या से संपर्क करने का एक कार्यात्मक तरीका है। सूची बोध अनिवार्य रूप map
से डेटा पर आईएनजी का एक और तरीका है , लेकिन इस मामले में जहां इनपुट और आउटपुट के बीच मैपिंग एक से एक नहीं है,reduce
को कैसे उत्पन्न किया जा सकता है, इसके साथ कुछ wiggle कमरे की अनुमति देता है।
सामान्य तौर पर, for
फॉर्म का कोई भी कार्यान्वयन:
result = []
for n in some_data:
result += some_operation()
(यानी किसी सूची या समान डेटा संरचना पर साइड इफ़ेक्ट उत्पन्न करने के लिए लूप के लिए)
एक घोषणात्मक map/reduce/filter
कार्यान्वयन में वापस लाया जा सकता है ।