ডিকশনারি হলো একটি ডেটা স্ট্রাকচার যেটি কী এবং ভ্যালু পেয়ার (key and value pairs) দিয়ে গঠিত। আমরা দুটি ক্রাইটেরিয়া দিয়ে ডিকশনারি সর্ট করতে পারি:
কী অনুযায়ী সর্ট (Sort by key) − ডিকশনারি তার কীগুলোর আরোহী ক্রমে (ascending order) সর্ট হয়। ভ্যালুগুলো বিবেচনা করা হয় না।
ভ্যালু অনুযায়ী সর্ট (Sort by value) − ডিকশনারি তার ভ্যালুগুলোর আরোহী ক্রমে সর্ট হয়।
পদ্ধতি ১ - ডিকশনারি কী অনুযায়ী সর্ট করা
এই পদ্ধতিতে, ডিকশনারি তার কীগুলোর আরোহী ক্রমে সর্ট হয়।
ইনপুট:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}
আউটপুট:
{1:100, 2:90, 3:5, 5:67, 8:3}
উপরে দেখা যাচ্ছে ডিকশনারি তার কী অনুযায়ী সর্ট হয়েছে।
উদাহরণ
dic = {2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2 = {}
for i in sorted(dic):
dic2[i] = dic[i]
print(dic2)
আউটপুট
{1: 100, 2: 90, 3: 5, 5: 67, 8: 3}
কোড লাইন বাই লাইন ব্যাখ্যা
সর্ট করার ডিকশনারি ডিক্লেয়ার করা হয়েছে
একটি খালি ডিকশনারি ডিক্লেয়ার করা হয়েছে যেখানে সর্ট করা কী-ভ্যালু পেয়ার যোগ করা হবে
sorted(dic)-এdic-এর সব কী সর্টেড অর্ডারে থাকে। এতে শুধু কী থাকে, কী-ভ্যালু পেয়ার নয়।sorted(dic)হবে [1,2,3,5,8]সর্টেড অর্ডারের প্রতিটি কীর জন্য, কী এবং সংশ্লিষ্ট ভ্যালু
dic2-তে যোগ করা হয়েছে।dic2-তে সব কী-ভ্যালু পেয়ার কীগুলোর সর্টেড অর্ডারে আছে
পদ্ধতি ২ - ডিকশনারি ভ্যালু অনুযায়ী সর্ট করা
এই পদ্ধতিতে, ডিকশনারি তার ভ্যালুগুলোর আরোহী ক্রমে সর্ট হয়।
ইনপুট:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}
আউটপুট:
{8:3, 3:5, 5:67, 2:90, 1:100}
উপরে দেখা যাচ্ছে ডিকশনারি তার ভ্যালু অনুযায়ী সর্ট হয়েছে।
আমরা
sorted()এবংitems()মেথড একসাথে ব্যবহার করি ডিকশনারি ভ্যালু অনুযায়ী সর্ট করতে।items()ডিকশনারির আইটেম বা ভ্যালুগুলো রিট্রিভ করতে ব্যবহৃত হয়।key=lambda x: x[1]হলো একটি সোর্টিং মেকানিজম যা ল্যাম্বডা ফাংশন ব্যবহার করে।এটি আমাদের কী-ভ্যালু পেয়ার দিয়ে যা পরে
dict()ব্যবহার করে ডিকশনারিতে রূপান্তরিত করা হয়।
উদাহরণ
dic = {2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2 = dict(sorted(dic.items(), key=lambda x: x[1]))
print(dic2)
আউটপুট
{8: 3, 3: 5, 5: 67, 2: 90, 1: 100}