Python सूची सॉर्ट() उदाहरणों के साथ

⚡ स्मार्ट सारांश

Python list sort() फ़ंक्शन सूची के तत्वों को उनके स्थान पर व्यवस्थित करता है, डिफ़ॉल्ट रूप से आरोही क्रम में या रिवर्स पैरामीटर के माध्यम से अवरोही क्रम में, जबकि एक वैकल्पिक key फ़ंक्शन लंबाई, टपल फ़ील्ड या उपयोगकर्ता-परिभाषित फ़ंक्शन जैसे कस्टम मानदंडों द्वारा सॉर्ट करता है।

  • 🔘 सिंटेक्स: sort() विधि वैकल्पिक key और reverse पैरामीटर स्वीकार करती है और मूल सूची की प्रतिलिपि बनाए बिना उसे संशोधित करती है।
  • आदेश नियंत्रण: रिवर्स पैरामीटर को True पर सेट करने से मान डिफ़ॉल्ट आरोही क्रम के बजाय उच्चतम से निम्नतम क्रम में सॉर्ट हो जाते हैं।
  • मुख्य पैरामीटर: len जैसे मुख्य फ़ंक्शन, स्ट्रिंग की लंबाई या टपल फ़ील्ड जैसे व्युत्पन्न मान के आधार पर तत्वों को सॉर्ट करते हैं।
  • 🧪 सॉर्ट बनाम सॉर्टेड: sort() विधि सूची को उसी स्थान पर परिवर्तित करती है और None लौटाती है, जबकि sorted() एक नई सूची लौटाती है और मूल सूची को बरकरार रखती है।
  • अनुकूलित मानदंड: लैम्डा एक्सप्रेशन और उपयोगकर्ता-परिभाषित फ़ंक्शन sort() फ़ंक्शन को किसी भी चयनित विशेषता के आधार पर टुपल्स, डिक्शनरी और नामित टुपल्स को क्रमबद्ध करने की अनुमति देते हैं।
  • 🤖 एआई वर्कफ़्लो: मशीन लर्निंग पाइपलाइन स्कोर के आधार पर भविष्यवाणियों को क्रमबद्ध करती हैं और रैंकिंग या मूल्यांकन से पहले शीर्ष परिणामों का चयन करती हैं।

Python सूची सॉर्ट()

इसमें sort() विधि क्या है? Python?

sort() फ़ंक्शन में Python यह सूची को आरोही या अवरोही क्रम में व्यवस्थित करने में सहायक है। इसका उपयोग संख्यात्मक सूची, टुपल्स और स्ट्रिंग सूची को सॉर्ट करने के लिए किया जा सकता है। यह कोई नई सूची नहीं बनाता बल्कि मूल सूची को संशोधित या सॉर्ट करता है।

सॉर्ट विधि का सिंटैक्स Python

सॉर्ट फ़ंक्शन का सिंटैक्स निम्नलिखित है:

List.sort(key=…, reverse=…)

सॉर्ट फ़ंक्शन में दो वैकल्पिक पैरामीटर होते हैं, अर्थात्:

  • कुंजी:- इसका उपयोग सॉर्टिंग मानदंड के आधार पर किसी फ़ंक्शन को सॉर्ट करने के लिए किया जाता है।
  • Reverseयह फ़ंक्शन true या false में से कोई एक मान लेता है। यदि true है, तो यह कस्टम फ़ंक्शन सूची को अवरोही क्रम में सॉर्ट करता है।

सॉर्ट विधि का उपयोग करके सूची को आरोही क्रम में सॉर्ट करना Python

In Pythonसॉर्ट फ़ंक्शन डिफ़ॉल्ट रूप से किसी भी सूची को आरोही क्रम में सॉर्ट करता है। आरोही क्रम में एक सूची में सबसे कम मान बाईं ओर होता है, और सबसे अधिक मान दाईं ओर होता है।

उदाहरण:

Python कोड:

base_list=["गूगल","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

आउटपुट:

the base list after sorting is ['Content', 'गूगल', 'Guru99', 'Reliance', 'Syntax']

Code स्पष्टीकरण:

  • उपरोक्त सूची एक यादृच्छिक रूप से परिभाषित स्ट्रिंग सूची है।
  • का सॉर्ट फ़ंक्शन Python यादृच्छिक सूची को आरोही क्रम में क्रमबद्ध करने में मदद करता है, जिसमें शब्द की सबसे कम लंबाई बाईं ओर और शब्द की सबसे अधिक लंबाई दाईं ओर होती है।

सूची को अवरोही क्रम में क्रमबद्ध करना

सॉर्ट फ़ंक्शन सूची को अवरोही क्रम में सॉर्ट करने की भी अनुमति देता है। इसे क्रम के रूप में परिभाषित किया जा सकता है जहां सूची उच्चतम मान से शुरू होती है और निम्नतम मान पर समाप्त होती है।

सूची को अवरोही क्रम में सॉर्ट करने के लिए सॉर्ट फ़ंक्शन के रिवर्स पैरामीटर को सत्य के रूप में निर्दिष्ट किया गया है।

आइए नीचे दिए गए उदाहरण को देखें:

Python कोड:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

आउटपुट:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

नोट: सुनिश्चित करें कि रिवर्स पैरामीटर के लिए शब्द “True” का असाइनमेंट किसी भी रन टाइम त्रुटि से बचने के लिए बड़े अक्षर “T” से शुरू होता है।

सॉर्ट विधि का उपयोग करके ट्यूपल्स की सूची को सॉर्ट करना Python

Python tuples अपरिवर्तनीय तत्वों का संग्रह है जो एक क्रमबद्ध अनुक्रम का अनुसरण करते हैं। Pythonके सॉर्ट फ़ंक्शन का उपयोग एक अनुकूलित फ़ंक्शन और लैम्ब्डा अभिव्यक्ति का उपयोग करके ट्यूपल्स की सूची को सॉर्ट करने के लिए किया जा सकता है।

एक कस्टमाइज्ड फंक्शन को बिना नाम के बनाया जा सकता है और इसे लैम्डा एक्सप्रेशन द्वारा दर्शाया जा सकता है। लैम्डा एक्सप्रेशन का सिंटैक्स निम्नलिखित है:

सिंटेक्स:

Lambda arguments: expression

उपरोक्त सिंटैक्स नीचे दिए गए पायथन कोड के समतुल्य है:

def name (arguments):
return expression

यहां एक टपल और अनुकूलित फ़ंक्शन का उदाहरण दिया गया है, जो यह दर्शाता है कि कुंजी मापदंडों वाला सॉर्ट फ़ंक्शन टपल में तत्वों को सॉर्ट करने में कैसे मदद करता है:

Python कोड:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

आउटपुट:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Code स्पष्टीकरण:

  • ट्यूपल को अवरोही क्रम में सॉर्ट करने के लिए रिवर्स पैरामीटर को सत्य के रूप में परिभाषित किया गया है।
  • अनुकूलित फ़ंक्शन ट्यूपल का दूसरा तत्व लेता है।
  • इसका उपयोग सॉर्ट फ़ंक्शन की कुंजी के रूप में किया जाता है।

आइये नीचे दिए गए उदाहरण को देखें जो लैम्ब्डा अभिव्यक्ति का उपयोग करता है:

Python कोड:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

आउटपुट:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

स्पष्टीकरण:

  • लैम्ब्डा अभिव्यक्ति आपको टपल के तत्वों को उच्च से निम्न तक क्रमबद्ध करने में मदद करती है, जिसमें कुंजी टपल का दूसरा तत्व है।
  • प्रोग्राम ट्यूपल के दूसरे तत्व के उच्चतम मान की जाँच करेगा।

कुंजी पैरामीटर के रूप में Len का उपयोग करके सूची आइटम को सॉर्ट करना

Len एक अंतर्निर्मित फ़ंक्शन है जो आइटम की लंबाई निर्धारित करता है। निर्धारित लंबाई का उपयोग सॉर्ट फ़ंक्शन में इंडेक्सिंग के लिए किया जा सकता है। ऐसा करने के लिए, हम Len को असाइन करते हैं। Python सॉर्ट फ़ंक्शन का कुंजी पैरामीटर.

निम्नलिखित Python कोड यह दर्शाता है कि सॉर्ट फ़ंक्शन के साथ Len फ़ंक्शन का उपयोग कैसे किया जाता है।

Python Code:

base_list=["Alto", "Guru99", "Python", "गूगल", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

आउटपुट:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'गूगल']

Code स्पष्टीकरण:

Len का उपयोग करके सूची आइटम सॉर्ट करना

  • तत्व की लंबाई सूची को आरोही क्रम में व्यवस्थित करने के लिए कुंजी पैरामीटर के लिए एक सूचकांक बन जाती है।
  • Len फ़ंक्शन आधार सूची में मौजूद प्रत्येक तत्व की लंबाई का अनुमान लगाता है।
  • यह सबसे छोटे तत्व को बायीं ओर तथा सबसे बड़े तत्व को दायीं ओर रखता है।
  • यहां, alto और java शब्दों की लंबाई 4 है, जो सूची में पहले स्थान पर हैं, उसके बाद... Guru99, जिसकी लंबाई 6 है।

यह उदाहरण सॉर्ट फ़ंक्शन में रिवर्स पैरामीटर की अवधारणा को दर्शाता है, जैसा कि नीचे दिखाया गया है:

Python Code:

base_list=["Alto", "Guru99", "Python", "गूगल", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

आउटपुट:

The sorted list based on length: ['Guru99', 'Python', 'गूगल', 'Alto', 'Java']

मुख्य पैरामीटर के रूप में उपयोगकर्ता-परिभाषित फ़ंक्शन का उपयोग करके सूची आइटम को सॉर्ट करना

आप किसी सूची को सॉर्ट करने के लिए उपयोगकर्ता-परिभाषित फ़ंक्शन को मुख्य पैरामीटर के रूप में भी उपयोग कर सकते हैं। यहाँ एक उदाहरण दिया गया है:

Python Code:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'गूगल','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

आउटपुट:

The base list after sorting using explicit criteria [{'Example': 'गूगल', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Code स्पष्टीकरण:

  • वर्ष लौटाने के लिए एक उपयोगकर्ता-परिभाषित फ़ंक्शन बनाया गया है
  • कुंजी पैरामीटर उपयोगकर्ता-परिभाषित फ़ंक्शन को मानदंड के रूप में लेता है।
  • सॉर्ट फ़ंक्शन सूची को तत्व “वर्ष” के मान के आधार पर आरोही क्रम में व्यवस्थित करेगा।

सॉर्ट विधि और सॉर्टेड विधि के बीच अंतर Python

ऊपर दिए गए उदाहरणों को समझने के बाद, दोनों सॉर्टिंग टूल्स की सीधे तुलना करना उपयोगी होगा। अंतरों को संक्षेप में बताने से पहले, आइए सॉर्टेड मेथड के सिंटैक्स को समझते हैं।

Python सिंटेक्स:

sorted (list_name, reverse=…., key=..)

Code स्पष्टीकरण:

  • सॉर्टेड फ़ंक्शन सूची को आरोही क्रम या अवरोही क्रम में सॉर्ट करता है।
  • फ़ंक्शन तीन पैरामीटर स्वीकार करता है, जिनमें से दो पैरामीटर वैकल्पिक प्रकार के होते हैं और एक पैरामीटर आवश्यक प्रकार का होता है।
  • Sorted विधि का उपयोग करते समय पैरामीटर list_name आवश्यक है।
  • सॉर्टेड विधि किसी भी प्रकार की पुनरावृत्तीय सूची को इनपुट के रूप में ले सकती है।
  • कुंजी पैरामीटर और रिवर्स पैरामीटर सॉर्टेड विधि के अंतर्गत वैकल्पिक पैरामीटर हैं Python.

यहाँ sort और sorted फ़ंक्शन का उपयोग करने का एक उदाहरण दिया गया है Python:

Python कोड:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

आउटपुट:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Code स्पष्टीकरण:

  • मूल सूची को सॉर्टेड फ़ंक्शन के लिए आवश्यक पैरामीटर के रूप में पास किया जाता है।
  • सॉर्टेड विधि मूल सूची के अलावा एक नई सूची लौटाती है।
  • चूंकि sorted विधि में कोई अतिरिक्त पैरामीटर पास नहीं किया जाता है, इसलिए नई सूची डिफ़ॉल्ट रूप से आरोही क्रम में सॉर्ट की जाती है।
  • सॉर्ट फ़ंक्शन कोई नई सूची नहीं बनाता है.

निम्नलिखित प्रमुख समानताओं और भिन्नताओं के बिंदु हैं:

सॉर्टेड फ़ंक्शन सॉर्ट फ़ंक्शन
सॉर्टेड फ़ंक्शन Python एक अंतर्निहित फ़ंक्शन है जो list_name को आवश्यक पैरामीटर के रूप में लेता है। सॉर्ट फ़ंक्शन मूल सूची को पैरामीटर के रूप में नहीं लेता है।
सॉर्टेड विधि एक नई सूची लौटाती है सॉर्ट फ़ंक्शन नई सूची नहीं लौटाता
पुनरावृत्त सूचियों के लिए सॉर्टेड फ़ंक्शन का उपयोग किया जाना चाहिए सॉर्ट फ़ंक्शन का उपयोग गैर-पुनरावृत्त सूचियों के लिए किया जाना चाहिए।
यह मूल सूची को संशोधित नहीं करता है तथा हमें मूल डेटा को बनाए रखने की अनुमति देता है। सॉर्ट फ़ंक्शन मूल फ़ंक्शन को संशोधित करता है और इसलिए कम मेमोरी स्थान घेरता है

सॉर्टेड विधि या सॉर्ट विधि का उपयोग कब करें?

आइए एक उदाहरण लेते हैं जिसमें रेस डेटा को सॉर्ट करने की आवश्यकता होती है। प्रोग्राम बिब नंबर और रेस खत्म करने में लगने वाले सेकंड में समय का उपयोग करता है।

Python कोड:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

आउटपुट:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Code स्पष्टीकरण:

  • आधार सूची को सॉर्ट फ़ंक्शन और सॉर्टेड फ़ंक्शन दोनों का उपयोग करके सॉर्ट किया जाता है।
  • सॉर्ट फ़ंक्शन लागू होने पर आधार सूची खो जाती है.
  • सॉर्ट फ़ंक्शन को मूल डेटा सेट पर लागू नहीं किया जाना चाहिए। इसका उपयोग तब किया जाना चाहिए जब मूल डेटा सेट का कॉपी संस्करण हो।
  • सॉर्टेड फ़ंक्शन मूल सूची को बनाए रखता है। यह उसे ओवरराइड नहीं करता है।
  • यह बेहतर सुविधाएँ प्रदान करता है tracसक्षमता और प्रभावी डेटा प्रबंधन।

अक्सर पूछे जाने वाले प्रश्न

sort() मेथड में key=str.lower पास करें, उदाहरण के लिए names.sort(key=str.lower)। प्रत्येक स्ट्रिंग की तुलना लोअरकेस में की जाती है, इसलिए 'Apple' और 'banana' को कैपिटलाइज़ेशन की परवाह किए बिना वर्णमाला क्रम में व्यवस्थित किया जाता है। अंतिम सॉर्ट की गई सूची में प्रत्येक तत्व का मूल केसिंग संरक्षित रहता है।

सभी संख्याओं या सभी स्ट्रिंग की सूची को सॉर्ट करना काम करता है, लेकिन पूर्णांक और स्ट्रिंग जैसे असंबंधित प्रकारों को मिलाने से TypeError उत्पन्न होता है, क्योंकि Python इनकी तुलना नहीं की जा सकती। पहले मानों को एक तुलनीय प्रकार में परिवर्तित करें, या एक कुंजी फ़ंक्शन पास करें जो तुलनीय कुंजियाँ लौटाता हो।

Python परंपरागत रूप से, Timsort का उपयोग किया जाता था, जो मर्ज सॉर्ट और इंसर्शन सॉर्ट का एक हाइब्रिड रूप है। संस्करण 3.11 से, इंटरप्रेटर पॉवरसॉर्ट का उपयोग करता है, जो Timsort से व्युत्पन्न एक प्रकार है जिसमें बेहतर मर्ज नीति है। दोनों स्थिर हैं और सबसे खराब स्थिति में O(n log n) समय में चलते हैं।

जी हां। sort() विधि स्थिर है, इसलिए समान मान वाले तत्व अपना मूल सापेक्ष क्रम बनाए रखते हैं। इससे आप कई मानदंडों के आधार पर अलग-अलग चरणों में सॉर्ट कर सकते हैं, जिसमें सबसे कम महत्वपूर्ण कुंजी पहले और सबसे महत्वपूर्ण कुंजी अंत में होती है।

sort() विधि सबसे खराब और औसत दोनों ही स्थितियों में O(n log n) समय में चलती है। पहले से ही लगभग क्रमबद्ध डेटा पर यह O(n) के करीब पहुंच जाती है, क्योंकि अंतर्निहित एल्गोरिदम मौजूदा क्रमबद्ध डेटा को पुनः क्रमबद्ध करने के बजाय उनका पता लगाकर उनका पुनः उपयोग करता है।

एक कुंजी पास करें जो तुलना के दौरान प्रत्येक आइटम को परिवर्तित करती है, उदाहरण के लिए nums.sort(key=int)। इससे सूची वर्ण के बजाय संख्यात्मक मान के आधार पर क्रमबद्ध हो जाती है, इसलिए '10' सही ढंग से '9' के बाद आता है। संग्रहित तत्व स्ट्रिंग के रूप में ही रहते हैं; केवल तुलना में उनके पूर्णांक मान का उपयोग होता है।

सॉर्टिंग स्कोर या संभावना के आधार पर भविष्यवाणियों को व्यवस्थित करती है, रैंकिंग और अनुशंसा प्रणालियों में शीर्ष k परिणामों का चयन करती है, और डेटा तैयार करने के दौरान रिकॉर्ड को क्रमबद्ध करती है। मशीन लर्निंग पाइपलाइन मूल्यांकन से पहले अक्सर फ़ीचर मानों या मॉडल आउटपुट को सॉर्ट करती हैं, इसलिए अंतर्निहित sort() विधि एक सामान्य प्रीप्रोसेसिंग चरण है।

जी हां। GitHub Copilot और एजेंटिक AI सहायक एक छोटे से कमेंट से ही sort() और sorted() कॉल जनरेट कर सकते हैं, जिनमें मुख्य फ़ंक्शन और लैम्डा एक्सप्रेशन शामिल हैं। वे लूप को सिंगल सॉर्ट स्टेटमेंट में बदल सकते हैं, हालांकि आपको फिर भी क्रम की जांच करनी चाहिए और विशेष मामलों में परिणाम की पुष्टि करनी चाहिए।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: