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

পাইথন প্রোগ্রাম: সিরিজে অনুপস্থিত (Missing) এলিমেন্ট খুঁজে বের করে পুরো সিরিজ তৈরি করুন

সমস্যা বিবরণ

একটি সিরিজ দেওয়া আছে যাতে কিছু সংখ্যা অনুপস্থিত (missing) আছে (যেমন ১,২,৩,৬,৭ — এখানে ৪ ও ৫ নেই)। লক্ষ্য হলো সিরিজের প্রথম ও শেষ 엘িমেন্টের মধ্যে থাকা সব পূর্ণসংখ্যা উপস্থিত থাকা একটি নতুন সিরিজ তৈরি করা।

ইনপুট সিরিজ

0    1
1    2
2    3
3    6
4    7

সমাধানের পদ্ধতি

  1. সিরিজ তৈরি করুন।
  2. রেঞ্জ নির্ধারণ করুন প্রথম এলিমেন্ট (data[0]) থেকে শেষ এলিমেন্ট (data[len(data)-1]) পর্যন্ত।
  3. লুপ চালান এই রেঞ্জের সব সংখ্যার জন্য।
  4. উপস্থিতি যাচাই করুন যদি সংখ্যাটি সিরিজে থাকে তবে যোগ করুন, না থাকলে ও যোগ করুন (এভাবে মিসিং সংখ্যাগুলো যোগ হয়ে যায়)।
  5. সর্ট করুন এবং নতুন সিরিজ তৈরি করুন।

পূর্ণ কোড উদাহরণ

import pandas as pd
import numpy as np

l = [1,2,3,6,7]
l1 = []
data = pd.Series(l)
length = len(data)

for i in range(data[0], data[length-1] + 1):  # +1 দিয়ে শেষ মান অন্তর্ভুক্ত
    if i not in data:
        l1.append(i)
    else:
        l1.append(i)

l1.sort()
data = pd.Series(l1)
print("পূর্ণ সিরিজ (মিসিং মানসহ):")
print(data)

আউটপুট

পূর্ণ সিরিজ (মিসিং মানসহ):
0    1
1    2
2    3
3    4
4    5
5    6
6    7
dtype: int64

বিকল্প পদ্ধতি (প্যান্ডাস রিইন্ডেক্স ব্যবহার করে)

আধুনিক প্যান্ডাসে আরও সহজে করা যায়:

import pandas as pd
data = pd.Series([1,2,3,6,7])
full_index = pd.RangeIndex(data.min(), data.max() + 1)
data = data.reindex(full_index).sort_index().reset_index(drop=True)
print(data)

নোট: মূল কোডে range(data[0], data[length-1]) লিখা থাকলে শেষ মান বাদ যায়, তাই +1 যোগ করা উচিত।

  1. পাইথন প্রোগ্রাম: সিরিজ থেকে নির্দিষ্ট রেঞ্জের (Range) এলিমেন্ট ফিল্টার করুন

  2. পাইথন প্রোগ্রাম: সিরিজে ইন্টিজার, ফ্লোট ও স্ট্রিং (Object) ডেটা টাইপের মোট সংখ্যা গণনা করুন

  3. পাইথন প্রোগ্রাম: সিরিজ থেকে শুধু ইন্টিজার (Integer) এলিমেন্ট ফিল্টার করুন

  4. পাইথনে সর্টেড তালিকা থেকে k-তম অনুপস্থিত সংখ্যা খুঁজে বের করার প্রোগ্রাম