हमारे पास केवल संख्याओं वाली एक सूची है। हम सूची से क्रमिक संख्याओं के एक सेट का औसत प्राप्त करने की योजना बनाते हैं जो पहली संख्या से अगली संख्या तक और फिर अगली संख्या तक रोल करता रहता है।
उदाहरण
नीचे दिया गया उदाहरण सूची के प्रत्येक 4-लंबाई लगातार तत्वों का औसत निकालने की आवश्यकता को सरल बनाता है।
दी गई सूची: [10, 12, 14, 16, 18, 20, 22, 24, 26] प्रत्येक 4 लगातार संख्याओं के खंड का औसत: [13.0, 15.0, 17.0, 19.0, 21.0, 23.0]
sum और range के साथ
हम लगातार संख्याओं का योग लेने के लिए सूची कॉम्प्रिहेंशन दृष्टिकोण का उपयोग करते हैं, यह ट्रैक करने के लिए range लागू करते हैं कि हमने कितनी संख्याएँ एकत्र की हैं। फिर हम एक लूप की मदद से योग को खंड की लंबाई से विभाजित करते रहते हैं। अंत में परिणाम को एक नई सूची में एकत्र किया जाता है।
उदाहरण
listA = [10, 12, 14, 16, 18, 20, 22, 24, 26] print("दी गई सूची:\n", listA) seg = 4 # सूची कॉम्प्रिहेंशन res = [sum(listA[m:m + seg]) / seg for m in range(len(listA) - seg + 1)] print("औसत के साथ नई सूची:\n", res)उपरोक्त कोड चलाने पर निम्नलिखित परिणाम मिलता है -
दी गई सूची: [10, 12, 14, 16, 18, 20, 22, 24, 26] औसत के साथ नई सूची: [13.0, 15.0, 17.0, 19.0, 21.0, 23.0]
islice और mean के साथ
इस दृष्टिकोण में हम पायथन मॉड्यूल की मदद लेते हैं जो इन मूल्यों को अधिक प्रत्यक्ष तरीके से गणना कर सकते हैं। हम islice फ़ंक्शन का उपयोग करके दी गई रेंज में सूची के तत्वों को काटते रहते हैं और फिर नई सूची पर सीधे mean फ़ंक्शन लागू करके अंतिम परिणाम प्राप्त करते हैं।
उदाहरण
from statistics import mean from itertools import islice listA = [10, 12, 14, 16, 18, 20, 22, 24, 26] print("दी गई सूची:\n", listA) # islice और mean के साथ listB = zip(*(islice(listA, i, None) for i in range(4))) res = list(map(mean, listB)) print("औसत के साथ नई सूची:\n", res)आउटपुट
उपरोक्त कोड चलाने पर निम्नलिखित परिणाम मिलता है -
दी गई सूची: [10, 12, 14, 16, 18, 20, 22, 24, 26] औसत के साथ नई सूची: [13, 15, 17, 19, 21, 23]