आप list.sort()
पद्धति के लिए एक key
पैरामीटर पारित कर सकते हैं, तो तुलना key
के लौटने मूल्य के समारोह में किया जाएगा:
>>> a = [{23:100}, {3:103}, {2:102}, {36:103}, {43:123}]
>>> a.sort(key=lambda d: d.values()[0], reversed=True)
>>> a
[{23: 100}, {2: 102}, {3: 103}, {36: 103}, {43: 123}]
इस मामले में, कुंजी एक समारोह है जो एक शब्दकोश प्राप्त करता है d
और .values()
के साथ अपने मूल्य की एक सूची प्राप्त करता है। चूंकि केवल एक मान है, इसलिए हमें लौटाई गई सूची से यह एकमात्र मूल्य मिलता है। फिर, list.sort()
विधि क्रमबद्ध होने पर, शब्दकोशों की बजाय, उन लौटाए गए मानों की तुलना करेगा।
sorted(a, key=dict.values, reverse=True)
सुंदर ज्यादा
एक ही बात है, लेकिन संभवतः अधिक मुहावरेदार:
उन शब्दकोशों अलग-अलग कुंजी है। क्या इसके लिए कोई बेहतर डेटा प्रकार है? – tlunter