अजगर सूची क्रमांक ()

सॉर्ट () पद्धति किसी विशिष्ट सूची के तत्वों को एक विशिष्ट आरोही या अवरोही क्रम में क्रमबद्ध करती है।

sort()विधि का सिंटैक्स है:

 list.sort (कुंजी =…, उल्टा =…)

वैकल्पिक रूप से, आप उसी उद्देश्य के लिए पायथन के अंतर्निर्मित सॉर्ट () फ़ंक्शन का भी उपयोग कर सकते हैं।

 क्रमबद्ध (सूची, कुंजी =…, उल्टा =…)

नोट: के बीच सबसे सरल अंतर है sort()और sorted(): sort()सूची को सीधे sorted()बदल देता है और किसी भी मूल्य को वापस नहीं करता है, जबकि सूची को नहीं बदलता है और क्रमबद्ध सूची को वापस करता है।

सॉर्ट () पैरामीटर

डिफ़ॉल्ट रूप से, sort()किसी भी अतिरिक्त मापदंडों की आवश्यकता नहीं होती है। हालाँकि, इसके दो वैकल्पिक पैरामीटर हैं:

  • रिवर्स - यदि True, सॉर्ट की गई सूची उलट है (या अवरोही क्रम में सॉर्ट की गई है)
  • कुंजी - प्रकार्य तुलना के लिए एक कुंजी के रूप में कार्य करने वाला फ़ंक्शन

सॉर्ट से वापसी मान ()

sort()विधि किसी भी मूल्य वापस नहीं करता है। बल्कि, यह मूल सूची को बदल देता है।

यदि आप एक सूची चाहते हैं तो मूल सूची को बदलने के बजाय क्रमबद्ध सूची को वापस करें sorted()

उदाहरण 1: दी गई सूची को क्रमबद्ध करें

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort() # print vowels print('Sorted list:', vowels)

आउटपुट

 क्रमबद्ध सूची: ('ए', 'ई', 'आई', 'ओ', 'यू')

अवरोही क्रम में क्रमबद्ध करें

sort()विधि एक को स्वीकार करता है reverseएक वैकल्पिक तर्क के रूप में पैरामीटर।

reverse = Trueसूची को अवरोही क्रम में सेट करना ।

 list.sort(reverse=True)

वैकल्पिक रूप से sorted(), आप निम्न कोड का उपयोग कर सकते हैं।

 sorted(list, reverse=True)

उदाहरण 2: सूची को अवरोही क्रम में क्रमबद्ध करें

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort(reverse=True) # print vowels print('Sorted list (in Descending):', vowels)

आउटपुट

 क्रमबद्ध सूची (अवरोही में): ('u', 'o', 'i', 'e', ​​'a')

कुंजी का उपयोग करके कस्टम फ़ंक्शन के साथ सॉर्ट करें

यदि आप छँटाई के लिए अपना खुद का कार्यान्वयन चाहते हैं, तो sort()विधि एक keyफ़ंक्शन को वैकल्पिक पैरामीटर के रूप में भी स्वीकार करती है ।

कुंजी फ़ंक्शन के परिणामों के आधार पर, आप दी गई सूची को सॉर्ट कर सकते हैं।

 list.sort(key=len)

वैकल्पिक रूप से हल के लिए:

 sorted(list, key=len)

यहां, lenतत्व की लंबाई को गिनने के लिए पायथन इन-बिल्ट फ़ंक्शन है।

सूची को प्रत्येक तत्व की लंबाई के आधार पर क्रमबद्ध किया जाता है, सबसे कम गिनती से लेकर उच्चतम तक।

हम जानते हैं कि एक ट्यूल को डिफ़ॉल्ट रूप से इसके पहले पैरामीटर का उपयोग करके सॉर्ट किया जाता है। आइए देखें sort()कि दूसरे तत्व का उपयोग करके सॉर्ट करने के तरीके को कैसे अनुकूलित किया जाए ।

उदाहरण 3: कुंजी का उपयोग करके सूची को क्रमबद्ध करें

 # take second element for sort def takeSecond(elem): return elem(1) # random list random = ((2, 2), (3, 4), (4, 1), (1, 3)) # sort list with key random.sort(key=takeSecond) # print list print('Sorted list:', random)

आउटपुट

 क्रमबद्ध सूची: (4, 1), (2, 2), (1, 3), (3, 4))

एक और उदाहरण लेते हैं। मान लीजिए कि हमारे पास एक कार्यालय के कर्मचारियों के बारे में जानकारी की एक सूची है जहां प्रत्येक तत्व एक शब्दकोश है।

हम निम्नलिखित तरीके से सूची को सॉर्ट कर सकते हैं:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # custom functions to get employee info def get_name(employee): return employee.get('Name') def get_age(employee): return employee.get('age') def get_salary(employee): return employee.get('salary') # sort by name (Ascending order) employees.sort(key=get_name) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=get_age) print(employees, end='') # sort by salary (Descending order) employees.sort(key=get_salary, reverse=True) print(employees, end='')

आउटपुट

(('नाम': 'एलन ट्यूरिंग', 'आयु': 25, 'वेतन': 10000), ('नाम': 'जॉन हॉपकिंस', 'आयु': 18, 'वेतन': 1000), ('नाम' ':' मिखाइल ताल ',' आयु ': 40,' वेतन ': 15000), (' नाम ':' शेरोन लिन ',' आयु ': 30,' वेतन ': 8000)) (' नाम ':' जॉन हॉपकिंस ',' उम्र ': 18,' वेतन ': 1000), (' नाम ':' एलन ट्यूरिंग ',' उम्र ': 25,' वेतन ': 10000), (' नाम ':' शेरोन लिन ',) 'आयु': 30, 'वेतन': 8000), ('नाम': 'मिखाइल ताल', 'आयु': 40, 'वेतन': 15000)) (('नाम': 'मिखाइल ताल', 'आयु') : 40, 'वेतन': 15000), ('नाम': 'एलन ट्यूरिंग', 'आयु': 25, 'वेतन': 10000), ('नाम ':' शेरोन लिन ',' उम्र ': 30,' वेतन ': 8000), (' नाम ':' जॉन हॉपकिंस ',' आयु ': 18,' वेतन ': 1000))

यहां, पहले मामले के लिए, हमारा कस्टम फ़ंक्शन प्रत्येक कर्मचारी का नाम लौटाता है। चूंकि नाम एक है string, वर्णक्रम क्रम का उपयोग करके डिफ़ॉल्ट रूप से पायथन।

दूसरे मामले के लिए, आयु ( int) लौटा दी जाती है और आरोही क्रम में क्रमबद्ध किया जाता है।

तीसरे मामले के लिए, फ़ंक्शन वेतन ( int) लौटाता है , और उपयोग करते हुए अवरोही क्रम में सॉर्ट किया जाता है reverse = True

लैंबडा फ़ंक्शन का उपयोग करना एक अच्छा अभ्यास है जब फ़ंक्शन को एक पंक्ति में संक्षेपित किया जा सकता है। तो, हम उपरोक्त कार्यक्रम भी लिख सकते हैं:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # sort by name (Ascending order) employees.sort(key=lambda x: x.get('Name')) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=lambda x: x.get('age')) print(employees, end='') # sort by salary (Descending order) employees.sort(key=lambda x: x.get('salary'), reverse=True) print(employees, end='')

आउटपुट

(('नाम': 'एलन ट्यूरिंग', 'आयु': 25, 'वेतन': 10000), ('नाम': 'जॉन हॉपकिंस', 'आयु': 18, 'वेतन': 1000), ('नाम' ':' मिखाइल ताल ',' आयु ': 40,' वेतन ': 15000), (' नाम ':' शेरोन लिन ',' आयु ': 30,' वेतन ': 8000)) (' नाम ':' जॉन हॉपकिंस ',' उम्र ': 18,' वेतन ': 1000), (' नाम ':' एलन ट्यूरिंग ',' उम्र ': 25,' वेतन ': 10000), (' नाम ':' शेरोन लिन ',) 'आयु': 30, 'वेतन': 8000), ('नाम': 'मिखाइल ताल', 'आयु': 40, 'वेतन': 15000)) (('नाम': 'मिखाइल ताल', 'आयु') : 40, 'वेतन': 15000), ('नाम': 'एलन ट्यूरिंग', 'आयु': 25, 'वेतन': 10000), ('नाम ':' शेरोन लिन ',' उम्र ': 30,' वेतन ': 8000), (' नाम ':' जॉन हॉपकिंस ',' आयु ': 18,' वेतन ': 1000))

लैम्ब्डा कार्यों के बारे में अधिक जानने के लिए, पायथन लैम्बडा फंक्शंस पर जाएँ।

दिलचस्प लेख...