OrderedDict পাইথনে dict অবজেক্টের একটি সাবক্লাস। OrderedDict এবং dict-এ একমাত্র পার্থক্য হলো, OrderedDict-এ কীগুলোর ক্রম সংরক্ষিত থাকে যেমন সেগুলো ইনসার্ট করা হয়েছিল। dict-এ ক্রম থাকতে পারে বা নাও থাকতে পারে।
OrderedDict একটি স্ট্যান্ডার্ড লাইব্রেরি ক্লাস, যা collections মডিউলে অবস্থিত।
এটি ব্যবহার করতে হলে প্রথমে collections স্ট্যান্ডার্ড লাইব্রেরি মডিউলটি ইম্পোর্ট করতে হবে।
import collections
এই বিভাগে আমরা OrderedDict-এ কিছু অপারেশন এবং OrderedDict ও Dict-এর মধ্যে পার্থক্য দেখব।
আমরা Dict এবং OrderedDict-এ কিছু কী এবং মান রাখতে পারি। এই উদাহরণে আমরা দেখতে পাবো যে Dict-এ ক্রম পরিবর্তন হতে পারে। কিন্তু OrderedDict-এ এটি ফিক্সড থাকবে।
উদাহরণ কোড
import collections
# সাধারণ dict তৈরি
my_dict = {}
my_dict['AA'] = 11
my_dict['BB'] = 22
my_dict['CC'] = 33
my_dict['DD'] = 44
for item in my_dict.items():
print(item)
print()
# অর্ডার্ড dict তৈরি
my_ord_dict = collections.OrderedDict()
my_ord_dict['AA'] = 11
my_ord_dict['BB'] = 22
my_ord_dict['CC'] = 33
my_ord_dict['DD'] = 44
for item in my_ord_dict.items():
print(item)
আউটপুট
('AA', 11)
('CC', 33)
('BB', 22)
('DD', 44)
('AA', 11)
('BB', 22)
('CC', 33)
('DD', 44)
নির্দিষ্ট কীয়ের মান পরিবর্তন করা
যখন একটি নির্দিষ্ট কীয়ের মান পরিবর্তন করা হয়, তবে OrderedDict-এ কীগুলোর ক্রম পরিবর্তন হয় না। আমরা দেখতে পাচ্ছি যে Dict টাইপ অবজেক্টের জন্য এই বিবৃতি সত্য হয়তে পারে বা নাও হতে পারে।
উদাহরণ কোড
import collections
# সাধারণ dict তৈরি
my_dict = {}
my_dict['AA'] = 11
my_dict['BB'] = 22
my_dict['CC'] = 33
my_dict['DD'] = 44
for item in my_dict.items():
print(item)
# BB কীয়ের মান পরিবর্তন
my_dict['BB'] = 100
print('After changing in Dict')
for item in my_dict.items():
print(item)
print()
# অর্ডার্ড dict তৈরি
my_ord_dict = collections.OrderedDict()
my_ord_dict['AA'] = 11
my_ord_dict['BB'] = 22
my_ord_dict['CC'] = 33
my_ord_dict['DD'] = 44
for item in my_ord_dict.items():
print(item)
# BB কীয়ের মান পরিবর্তন
my_ord_dict['BB'] = 100
print('After changing in Ordered Dict')
for item in my_ord_dict.items():
print(item)
আউটপুট
('AA', 11)
('BB', 22)
('CC', 33)
('DD', 44)
After changing in Dict
('AA', 11)
('CC', 33)
('DD', 44)
('BB', 100)
('AA', 11)
('BB', 22)
('CC', 33)
('DD', 44)
After changing in Ordered Dict
('AA', 11)
('BB', 100)
('CC', 33)
('DD', 44)
OrderedDict-এ এলিমেন্ট ডিলিট এবং রি-ইনসার্ট করা
যখন OrderedDict-এ একটি এলিমেন্ট ডিলিট করা হয় এবং সেই কী এবং মানকে রি-ইনসার্ট করা হয়, তবে এটি পিছনে ধাকেলে দেওয়া হয়। যদিও এটি ইনসার্ট করার সময় ক্রম মেইনটেইন করত, কিন্তু ডিলিশনের জন্য এটি ক্রমের তথ্য মুছে ফেলে এবং রি-ইনসার্টের জন্য নতুন এন্ট্রি হিসেবে বিবেচনা করে।
উদাহরণ কোড
import collections
# অর্ডার্ড dict তৈরি
my_ord_dict = collections.OrderedDict()
my_ord_dict['AA'] = 11
my_ord_dict['BB'] = 22
my_ord_dict['CC'] = 33
my_ord_dict['DD'] = 44
for item in my_ord_dict.items():
print(item)
# BB কীয়ের আইটেম ডিলিট
my_ord_dict.pop('BB')
print('After Deleting')
for item in my_ord_dict.items():
print(item)
# আইটেম রি-ইনসার্ট
my_ord_dict['BB'] = 22
print('After Re-inserting')
for item in my_ord_dict.items():
print(item)
আউটপুট
('AA', 11)
('BB', 22)
('CC', 33)
('DD', 44)
After Deleting
('AA', 11)
('CC', 33)
('DD', 44)
After Re-inserting
('AA', 11)
('CC', 33)
('DD', 44)
('BB', 22)