collections-এ কিছু কন্টেইনার ডেটা টাইপ রয়েছে, যা পাইথনের জেনারেল পারপাস বিল্ট-ইন কন্টেইনার যেমন dict, list, set ইত্যাদির বিকল্প।
কিছু কন্টেইনার হলো -
| Sr.No. | Container & Description |
|---|---|
| 1 | namedtuple() নেমড ফিল্ডসহ টাপল সাবক্লাস তৈরি করতে ব্যবহৃত হয় |
| 2 | deque লিস্ট টাইপ ডেটা ব্যবহার করে কিউ |
| 3 | Counter হ্যাশ-টেবল অবজেক্ট কাউন্ট করার জন্য dict সাবক্লাস |
| 4 | ChainMap একাধিক ম্যাপিং-এর একক ভিউ তৈরি করতে ব্যবহৃত হয় |
| 5 | OrderedDict dict সাবক্লাস, যেখানে ডেটা অর্ডার্ড ম্যানারে যোগ হয় |
| 6 | UserList লিস্টের র্যাপার সহজ অ্যাক্সেসের জন্য। |
এই মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে -
import collections
Deque অবজেক্ট
Deque মূলত স্ট্যাক এবং কিউ স্ট্রাকচারর একটি জেনারেলাইজেশন, যেখানে এটি বাম থেকে ডানে ইনিশিয়ালাইজ করা হয়। এটি লিস্ট অবজেক্ট ব্যবহার করে একটি deque তৈরি করে।
কিছু Deque সংক্রান্ত মেথড -
| Sr.No. | Methods & Description |
|---|---|
| 1 | append(x) ডিকিউয়ের ডানে এলিমেন্ট x যোগ করুন |
| 2 | appendleft(x) ডিকিউয়ের বামে এলিমেন্ট x যোগ করুন |
| 3 | clear() ডিকিউ ক্লিয়ার করুন |
| 4 | count(x) ডিকিউতে x-এর رخাফের সংখ্যা গণনা করুন |
| 5 | index(x[, start[,stop]]) x-এর পজিশন ফেরত দিন। যদি start এবং stop ডিফাইন করা থাকে, সেটা রেঞ্জে খুঁজবে |
| 6 | insert(i, x) পজিশন i-তে ডিকিউতে x ইনসার্ট করুন |
| 7 | pop() ডান পাশ থেকে এলিমেন্ট রিমুভ এবং রিটার্ন করুন |
| 8 | popleft() বাম পাশ থেকে এলিমেন্ট রিমুভ এবং রিটার্ন করুন |
| 9 | reverse() ডিকিউ এর কন্টেন্ট উল্টা করুন |
| 10 | rotate(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 |
|---|---|
| 1 | elements() কাউন্টার ভ্যালু যতবার ধারণ করে, ততবার এলিমেন্ট রিটার্ন করুন। |
| 2 | most_common([n]) এই মেথড কাউন্টার থেকে সবচেয়ে বেশি ব্যবহৃত n এলিমেন্টের লিস্ট ফেরত দেয়। যদি n নির্দিষ্ট না করা হয়, তবে সকল ফেরত দেবে। |
| 3 | subtract(iterable or mapping) দুটি কাউন্টার অবজেক্ট থেকে কাউন্টার ভ্যালু বিয়োগ করুন, যেখানে কী মিলে। |
| 4 | update(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 |
|---|---|
| 1 | maps এটি কীসহ তার відповের মান ফেরত দিতে ব্যবহৃত হয়। |
| 2 | new_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'}]