निम्न कोड में:अजगर सूची टुकड़ा करने की क्रिया दक्षता
def listSum(alist):
"""Get sum of numbers in a list recursively."""
sum = 0
if len(alist) == 1:
return alist[0]
else:
return alist[0] + listSum(alist[1:])
return sum
हर बार बनाया जब मैं listSum(alist[1:])
कर एक नई सूची है?
यदि हां, तो यह अनुशंसित तरीका है या क्या मैं कुछ और कुशल कर सकता हूं? (नहीं विशेष समारोह के लिए -इस एक उदाहरण के रूप में कार्य करता है, बल्कि जब मैं सामान्य रूप में एक सूची के एक विशिष्ट भाग पर कार्रवाई करना चाहते हैं।)
संपादित करें:
क्षमा करें यदि मैं किसी को भी उलझन में, मैं नहीं कर रहा हूँ एक कुशल sum
कार्यान्वयन में रूचि रखते हुए, इसने स्लाइसिंग का उपयोग करने के लिए एक उदाहरण के रूप में कार्य किया।
तो, एक खिलौना उदाहरण के रूप में मानते हुए कि मेरे पास संख्याओं की काफी बड़ी सूची है, और मैं उनमें से आधे से जोड़ना चाहता हूं। क्या मेरी सूची में 'संख्या के लिए कुछ है [मध्य:]: संख्या + = 2' स्वीकार्य है? (या इसे वास्तव में बड़ी सूची को टुकड़ा करने के लिए एक अच्छा अभ्यास नहीं माना जाता है?) –
@i_am_finally_learning_python उस उदाहरण को छोड़कर उस उदाहरण को काम नहीं करता है - 'mylist' की सामग्री को परिवर्तित नहीं करता है (और इसे करने का सबसे आसान तरीका शामिल है कुछ भी टुकड़ा नहीं) - यह निर्भर करता है। स्लाइसिंग में बड़ा प्लस होता है जो वैकल्पिक रूप से सरल और सुंदर होता है। लेकिन "काफी बड़ा" क्या है, यह कोड कितनी बार निष्पादित करता है, और अन्य कारकों के आधार पर, यह कष्टप्रद धीमा हो सकता है और कम पठनीय टुकड़ा-कम विकल्प इसके लायक है। सामान्य रूप से कहना मुश्किल है। – delnan
ओह लेकिन निश्चित रूप से, मुझे लगता है कि मुझे उन पाइथन के साथ लूप के लिए अतिरंजित मिला !! इससे कुछ सामान साफ हो गया, धन्यवाद। –