কম্পিউটার টিউটোরিয়াল

পাইথন লিস্টে প্রতিটি n-লেথ সিকোয়েনশিয়াল সেগমেন্টের গড় বের করা

আমাদের কাছে একটি সংখ্যা-মাত্রা লিস্ট আছে। আমরা লিস্ট থেকে ধারাবাহিক সংখ্যা গুলোর গড় বের করতে চাই, যা প্রথম সংখ্যা থেকে শুরু করে পরবর্তী সংখ্যায় স্লাইড (roll) করে যায়।

উদাহরণ

নিচের উদাহরণটি লিস্টের প্রতিটি ৪-লেথ ধারাবাহিক উপাদানের গড় বের করার প্রয়োজনীয়তা সহজ করে দিয়েছে।

Given list: [10, 12, 14, 16, 18, 20, 22, 24, 26]
Average of every segment of 4 consecutive numbers: [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("Given list:\n", listA)
seg = 4
# List comprehension
res = [sum(listA[m:m + seg]) / seg for m in range(len(listA) - seg + 1)]
print("New list with averages:\n", res)

উপরোক্ত কোড রান করলে নিচের ফলাফল পাওয়া যাবে:

Given list: [10, 12, 14, 16, 18, 20, 22, 24, 26]
New list with averages: [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("Given list:\n", listA)
# With islice and mean
listB = zip(*(islice(listA, i, None) for i in range(4)))
res = list(map(mean, listB))
print("New list with averages:\n", res)
আউটপুট

উপরোক্ত কোড রান করলে নিচের ফলাফল পাওয়া যাবে:

Given list: [10, 12, 14, 16, 18, 20, 22, 24, 26]
New list with averages: [13, 15, 17, 19, 21, 23]
  1. পাইথনে লিস্টে কনsekutিভ নম্বর আছে কিনা যাচাই করুন

  2. পাইথনে পূর্ণসংখ্যার তালিকার প্রতিটি উপাদানে K যোগ করা

  3. পাইথনে লিস্টের গড় (Average) বের করা

  4. পাইথনে বাক্যের প্রতিটি শব্দ উল্টে ফেলার প্রোগ্রাম