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

পাইথনে ডিকশনারি ভ্যালু অনুযায়ী সর্ট করার পদ্ধতি

পাইথনের স্ট্যান্ডার্ড ডিস্ট্রিবিউশনে collections মডিউল থাকে। এতে হাই-পারফরম্যান্স কন্টেইনার ডেটা টাইপের ডেফিনিশন থাকে। OrderedDict ডিকশনারির একটি সাবক্লাস যা ডিকশনারি অবজেক্টে যুক্ত এন্ট্রিগুলোর অর্ডার মনে রাখে। অর্ডারড ডিকশনারি ওপর ইটারেট করলে আইটেমগুলো কি প্রথমে যোগ হয়েছিল সেই অর্ডারে রিটার্ন হয়।

>>> from collections import OrderedDict
>>> D = {5: 'fff', 3: 'ttt', 1: 'ooo', 4: 'bbb', 2: 'ddd'}
>>> OrderedDict(D.items())
OrderedDict([(5, 'fff'), (3, 'ttt'), (1, 'ooo'), (4, 'bbb'), (2, 'ddd')])

আমাদের sorted() ফাংশনও দরকার যা একটি ইটেরেবলের এলিমেন্টগুলো নির্দিষ্ট অর্ডারে সর্ট করে। ফাংশনটি একটি ফাংশন আর্গুমেন্ট হিসেবে নেয় যা সর্টিং-র জন্য কি হিসেবে কাজ করে। যেহেতু আমরা ডিকশনারিকে ভ্যালু অনুযায়ী সর্ট করতে চাই, তাই টাপলের ১ নম্বর এলিমেন্ট (ইনডেক্স ১) কি হিসেবে নিচ্ছি।

>>> OrderedDict(sorted(D.items(), key=lambda t: t[1]))
OrderedDict([(4, 'bbb'), (2, 'ddd'), (5, 'fff'), (1, 'ooo'), (3, 'ttt')])

OrderedDict অবজেক্টকে রেগুলার ডিকশনারি অবজেক্টে পার্স করা যায়:

>>> D1 = dict(OrderedDict(sorted(D.items(), key=lambda t: t[1])))
>>> D1
{4: 'bbb', 2: 'ddd', 5: 'fff', 1: 'ooo', 3: 'ttt'}

পাইথন ৩.৭+ নোট: রেগুলার ডিকশনারিই ইনসারশন অর্ডার মেইনটেইন করে, OrderedDict বাধ্যতামূলক নয়।

  1. Python Dictionary-এ একটি কী দিয়ে ভ্যালু প্রিন্ট করা

  2. পাইথনে ডিকশনারিতে কী-এর ভ্যালু আপডেট কীভাবে করবেন?

  3. পাইথনে ডিকশনারি ভ্যালু অনুযায়ী সর্ট করার পদ্ধতি

  4. পাইথনে ডিকশনারি কি অনুযায়ী সর্ট করার পদ্ধতি