নেস্টেড ডিকশনারি (ডিকশনারি ভ্যালু হিসেবে ডিকশনারি) কে ইনার কী-এর ভ্যালু অনুযায়ী সর্ট করতে sorted() এবং lambda ব্যবহার করুন।
ডেটা স্ট্রাকচার
my_collection = {
'KEY1': {'name': 'foo', 'data': 1351, 'completed': 100},
'KEY2': {'name': 'bar', 'data': 1541, 'completed': 12},
'KEY3': {'name': 'baz', 'data': 58413, 'completed': 18}
}
অসেন্ডিং অর্ডারে 'completed' কী দিয়ে সর্ট
sorted_keys = sorted(my_collection, key=lambda x: my_collection[x]['completed']) print(sorted_keys)
আউটপুট
['KEY2', 'KEY3', 'KEY1']
ব্যাখ্যা
my_collection[x]['completed']→ প্রতিটি আউটার কী-এর ইনার ডিক্টের 'completed' ভ্যালুsorted()সর্টেড কী-লিস্ট রিটার্ন করে- ভ্যালু: 12 (KEY2) < 18 (KEY3) < 100 (KEY1)
সর্টেড ডিকশনারি বানানো (Python 3.7+)
sorted_dict = {k: my_collection[k] for k in sorted_keys}
# বা
from collections import OrderedDict
sorted_dict = OrderedDict((k, my_collection[k]) for k in sorted_keys)
ডিসেন্ডিং অর্ডার
sorted_keys = sorted(my_collection, key=lambda x: my_collection[x]['completed'], reverse=True)