आप पाइथन में आसान reduce
समारोह जानते हैं। उदाहरण के लिए, आप इसे इस्तेमाल कर सकते हैं (नाटक वहाँ नहीं है में निर्मित sum) तो जैसे एक सूची को योग करने के लिए:पायथन में reducelist: कम करने की तरह लेकिन इंटरमीडिएट परिणामों की सूची दे
reduce(lambda x,y: x+y, [1,2,3,4], 0)
जो रिटर्न (((0 + 1) +2) +3) + 4 = 10.
अब क्या होगा यदि मैं मध्यवर्ती रकम की एक सूची चाहता था? इस मामले में, [1,3,6,10]
।
यहां एक बदसूरत समाधान है। क्या कुछ और पाइथनिक है?
def reducelist(f, l, x):
out = [x]
prev = x
for i in l:
prev = f(prev, i)
out.append(prev)
return out
एफवाईआई, कम से कम हास्केल में इसे * स्कैन * के नाम से जाना जाता है। कम करना कार्यात्मक प्रोग्रामिंग दुनिया में (एक विशिष्ट प्रकार) * गुना * के रूप में भी जाना जाता है। – delnan
धन्यवाद delnan, हाँ, मैं इसे गणित से FoldList के रूप में जानता हूँ। गणित में "सूची" को जोड़कर बताए गए इन कार्यात्मक प्रोग्रामिंग कार्यों में से कई का एक संचय संस्करण है। मैं नीचे दिए गए उत्तर से देखता हूं कि पाइथन 3 में जिसे मैं रेड्यूसेलिस्ट कहता हूं अब जमा() के रूप में उपलब्ध है। – dreeves