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

পাইথন কন্টেইনার ডেটা টাইপ


collections-এ কিছু কন্টেইনার ডেটা টাইপ রয়েছে, যা পাইথনের জেনারেল পারপাস বিল্ট-ইন কন্টেইনার যেমন dict, list, set ইত্যাদির বিকল্প।

কিছু কন্টেইনার হলো -

Sr.No.Container & Description
1namedtuple()
নেমড ফিল্ডসহ টাপল সাবক্লাস তৈরি করতে ব্যবহৃত হয়
2deque
লিস্ট টাইপ ডেটা ব্যবহার করে কিউ
3Counter
হ্যাশ-টেবল অবজেক্ট কাউন্ট করার জন্য dict সাবক্লাস
4ChainMap
একাধিক ম্যাপিং-এর একক ভিউ তৈরি করতে ব্যবহৃত হয়
5OrderedDict
dict সাবক্লাস, যেখানে ডেটা অর্ডার্ড ম্যানারে যোগ হয়
6UserList
লিস্টের র‍্যাপার সহজ অ্যাক্সেসের জন্য।

এই মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে -

import collections

Deque অবজেক্ট

Deque মূলত স্ট্যাক এবং কিউ স্ট্রাকচারর একটি জেনারেলাইজেশন, যেখানে এটি বাম থেকে ডানে ইনিশিয়ালাইজ করা হয়। এটি লিস্ট অবজেক্ট ব্যবহার করে একটি deque তৈরি করে।

কিছু Deque সংক্রান্ত মেথড -

Sr.No.Methods & Description
1append(x)
ডিকিউয়ের ডানে এলিমেন্ট x যোগ করুন
2appendleft(x)
ডিকিউয়ের বামে এলিমেন্ট x যোগ করুন
3clear()
ডিকিউ ক্লিয়ার করুন
4count(x)
ডিকিউতে x-এর رخাফের সংখ্যা গণনা করুন
5index(x[, start[,stop]])
x-এর পজিশন ফেরত দিন। যদি start এবং stop ডিফাইন করা থাকে, সেটা রেঞ্জে খুঁজবে
6insert(i, x)
পজিশন i-তে ডিকিউতে x ইনসার্ট করুন
7pop()
ডান পাশ থেকে এলিমেন্ট রিমুভ এবং রিটার্ন করুন
8popleft()
বাম পাশ থেকে এলিমেন্ট রিমুভ এবং রিটার্ন করুন
9reverse()
ডিকিউ এর কন্টেন্ট উল্টা করুন
10rotate(n = 1)
ডিকিউকে n বার ডানে রোটেট করুন

উদাহরণ কোড

import collections as col
my_deque = col.deque('124dfre')
print(my_deque)
print("Popped Item: " + str(my_deque.pop()))
print("Popped Item From Left: " + str(my_deque.popleft()))
print(my_deque)

আউটপুট

deque(['1', '2', '4', 'd', 'f', 'r', 'e'])
Popped Item: e
Popped Item From Left: 1
deque(['2', '4', 'd', 'f', 'r'])

Counter অবজেক্ট

Counter একটি dict টাইপ অবজেক্টের সাবক্লাস। এটি কী ভ্যালু কাউন্ট করতে ব্যবহার করা যায়। কাউন্টার শুধু ইন্টিজার ভ্যালু অনুমতি দেয়।

কিছু Counter সংক্রান্ত মেথড -

Sr.No.Methods & Description
1elements()
কাউন্টার ভ্যালু যতবার ধারণ করে, ততবার এলিমেন্ট রিটার্ন করুন।
2most_common([n])
এই মেথড কাউন্টার থেকে সবচেয়ে বেশি ব্যবহৃত n এলিমেন্টের লিস্ট ফেরত দেয়। যদি n নির্দিষ্ট না করা হয়, তবে সকল ফেরত দেবে।
3subtract(iterable or mapping)
দুটি কাউন্টার অবজেক্ট থেকে কাউন্টার ভ্যালু বিয়োগ করুন, যেখানে কী মিলে।
4update(iterable or mapping)
কী মিলে মান যোগ করে, রিপ্লেস ছাড়া।

উদাহরণ কোড

import collections as col
text_list = ['ABC','PQR','ABC','ABC','PQR','Mno','xyz','PQR','ABC','xyz']
my_counter = col.Counter()
for element in text_list:
    my_counter[element] += 1
print(my_counter)
print(my_counter.most_common(2))

আউটপুট

Counter({'ABC': 4, 'PQR': 3, 'xyz': 2, 'Mno': 1})
[('ABC', 4), ('PQR', 3)]

ChainMap অবজেক্ট

ChainMap ডিকশনারিগুলোকে একক ইউনিটে এনক্যাপসুলেট করতে ব্যবহৃত হয়।

ChainMap-এর কিছু মেম্বার -

Sr.No.Methods & Description
1maps
এটি কীসহ তার відповের মান ফেরত দিতে ব্যবহৃত হয়।
2new_child(m = None)
এই মেথড চেইনের প্রথম পজিশনে একটি নতুন ডিকশনারি ইনসার্ট করতে ব্যবহৃত হয়।

উদাহরণ কোড

import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
code = {'Japan' : 'JP'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
chain = chain.new_child(code)  # Insert New Child
print("Final Chain: " + str(chain.maps))

আউটপুট

Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Final Chain: [{'Japan': 'JP'}, {'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]

  1. পাইথনে সর্বোচ্চ পানির কন্টেইনার

  2. পাইথনে Sqrt(x) ইমপ্লিমেন্টেশন

  3. পাইথনে issuperset() ফাংশন

  4. পাইথনে Deque