जब टुपल्स को उनमें मौजूद अधिकतम तत्व के आधार पर सॉर्ट करने की आवश्यकता होती है, तो एक मेथड परिभाषित की जाती है जो 'max' मेथड का उपयोग करके उच्चतम तत्व लौटाती है। फिर 'sort' मेथड का उपयोग पहले से परिभाषित फ़ंक्शन के आधार पर सूची को सॉर्ट करने के लिए किया जा सकता है।
उदाहरण
def get_max_value(my_val):
return max(my_val)
my_list = [(4, 6, 8, 1), (13, 21, 42, 56), (7, 1, 9, 0), (1, 2)]
print("सूची है: ")
print(my_list)
my_list.sort(key=get_max_value, reverse=True)
print("सॉर्ट किए गए टुपल्स हैं: ")
print(my_list)
आउटपुट
सूची है: [(4, 6, 8, 1), (13, 21, 42, 56), (7, 1, 9, 0), (1, 2)] सॉर्ट किए गए टुपल्स हैं: [(13, 21, 42, 56), (7, 1, 9, 0), (4, 6, 8, 1), (1, 2)]
व्याख्या
'get_max_value' नामक एक मेथड परिभाषित की गई है, जो 'max' फ़ंक्शन का उपयोग करके उच्चतम मान देती है।
टुपल्स की एक सूची परिभाषित की जाती है, और तत्वों को कंसोल पर प्रदर्शित किया जाता है।
पहले से परिभाषित फ़ंक्शन की कुंजी के आधार पर सूची को सॉर्ट किया जाता है।
इसे रिवर्स क्रम में प्रदर्शित किया जाता है।
यह आउटपुट कंसोल पर प्रदर्शित होता है।
लैम्ब्डा का उपयोग करके संक्षिप्त संस्करण
my_list.sort(key=lambda x: max(x), reverse=True) # या sorted_list = sorted(my_list, key=lambda x: max(x), reverse=True)
अन्य सॉर्टिंग मानदंड
न्यूनतम तत्व के आधार पर
my_list.sort(key=lambda x: min(x))
योग के आधार पर
my_list.sort(key=lambda x: sum(x))
औसत के आधार पर
my_list.sort(key=lambda x: sum(x)/len(x))
लंबाई के आधार पर
my_list.sort(key=len)
जटिल सॉर्टिंग: एकाधिक कुंजियाँ
# पहले अधिकतम के अनुसार घटते क्रम में, फिर योग के अनुसार बढ़ते क्रम में my_list.sort(key=lambda x: (-max(x), sum(x)))
महत्वपूर्ण नोट्स
sort()मूल सूची को संशोधित करता है (इन-प्लेस)sorted()एक नई सॉर्ट की गई सूची लौटाता हैkeyफ़ंक्शन प्रत्येक तत्व के लिए एक बार कॉल किया जाता है (श्वार्ट्जियन ट्रांसफॉर्म)reverse=Trueअवरोही क्रम के लिए
समय जटिलता
सॉर्टिंग: O(n log n)
प्रत्येक तत्व के लिए key फ़ंक्शन: O(k) जहां k टुपल की लंबाई है
कुल: O(n * k + n log n)