पायथन sorted() विधि: एक त्वरित समीक्षा
डिक्शनरी अनऑर्डर्ड डेटा संरचनाएं हैं। वे डेटा स्टोर करने के लिए मैपिंग संरचना का उपयोग करते हैं। डिक्शनरी कुंजियों को मानों से मैप करते हैं, जिससे संबंधित डेटा रखने वाले जोड़े बनते हैं।
पायथन sorted() विधि का उपयोग करके, आप डिक्शनरी की सामग्री को मान के अनुसार सॉर्ट कर सकते हैं। उदाहरण के लिए, कॉफी मेनू पर आइटम की लोकप्रियता को रैंक करने के लिए, आप पायथन की sorted() विधि का उपयोग कर सकते हैं। यह ट्यूटोरियल चर्चा करेगा कि sorted() विधि कैसे काम करती है और आप इसका उपयोग डिक्शनरी की सामग्री को सॉर्ट करने के लिए कैसे कर सकते हैं।
पायथन sorted() रीफ्रेशर
पायथन का बिल्ट-इन sorted() फंक्शन इटरेबल ऑब्जेक्ट्स जैसे सूचियों, टपल्स और डिक्शनरी को सॉर्ट करने के लिए उपयोग किया जा सकता है। sorted() फंक्शन निर्दिष्ट इटरेबल ऑब्जेक्ट के आइटम्स को सॉर्ट करता है और नए सॉर्ट किए गए मानों के साथ एक नया ऑब्जेक्ट बनाता है।
यहाँ sorted() विधि का सिंटैक्स है:
sorted(object, key, reverse)
विधि तीन पैरामीटर लेती है:
- object: वह इटरेबल ऑब्जेक्ट जिसे आप सॉर्ट करना चाहते हैं (आवश्यक)
- key: वह फंक्शन जो कस्टम सॉर्ट ऑपरेशन करने की अनुमति देता है (वैकल्पिक)
- reverse: निर्दिष्ट करता है कि ऑब्जेक्ट को अवरोही क्रम में सॉर्ट किया जाना चाहिए या नहीं (वैकल्पिक)
जैसा कि आप देख सकते हैं, object एकमात्र आवश्यक पैरामीटर है। यदि आप वैकल्पिक key और reverse पैरामीटर का उपयोग नहीं करने का निर्णय लेते हैं, तो पायथन स्वचालित रूप से ऑब्जेक्ट को आरोही क्रम में सॉर्ट करेगा।
मान के अनुसार डिक्शनरी सॉर्ट करें
मान लीजिए आपके पास एक डिक्शनरी है और आप उसे कुंजी-मान जोड़े के अनुसार सॉर्ट करना चाहते हैं। आप दो फंक्शन का एक साथ उपयोग करके ऐसा कर सकते हैं: items() और sorted()।
items() फंक्शन आपको डिक्शनरी में आइटम्स को पुनः प्राप्त करने की अनुमति देता है। हम इस फंक्शन का उपयोग sorted() फंक्शन और एक कस्टम key पैरामीटर के साथ संयोजन में डिक्शनरी को मान के अनुसार सॉर्ट करने के लिए कर सकते हैं। निम्नलिखित दो उदाहरणों पर विचार करें।
उदाहरण 1: अवरोही क्रम में सॉर्ट करें
आइए कॉफी शॉप पर वापस चलते हैं। मान लीजिए हमारे पास एक डिक्शनरी है जो हमारे कॉफी मेनू पर आइटम्स को स्टोर करती है और साथ ही पिछले महीने प्रत्येक आइटम का कितना ऑर्डर किया गया था। हम देखना चाहते हैं कि पिछले महीने सबसे लोकप्रिय कॉफी कौन सी थी, इसलिए हम ऑर्डर डिक्शनरी को मानों के अवरोही क्रम में सॉर्ट करने का निर्णय लेते हैं।
यहाँ एक प्रोग्राम है जिसका उपयोग हम अपनी डिक्शनरी की सामग्री को मान के अनुसार सॉर्ट करने के लिए कर सकते हैं:
orders = {
'cappuccino': 54,
'latte': 56,
'espresso': 72,
'americano': 48,
'cortado': 41
}
sort_orders = sorted(orders.items(), key=lambda x: x[1], reverse=True)
for i in sort_orders:
print(i[0], i[1])
हमारा कोड निम्नलिखित लौटाता है:
espresso 72 latte 56 cappuccino 54 americano 48 cortado 41
हमारे कोड में बहुत कुछ हो रहा है, आइए इसे समझते हैं।
हमारे कोड की शुरुआत में, हम orders नामक एक डिक्शनरी परिभाषित करते हैं जो कॉफी के नामों को कुंजियों के रूप में और बेची गई संख्या को मानों के रूप में स्टोर करती है।
फिर, हम orders डिक्शनरी को मान के अनुसार सॉर्ट करने के लिए sorted() विधि का उपयोग करते हैं। यहाँ बताया गया है कि हमने sorted() विधि का उपयोग कैसे किया:
| पैरामीटर | टेक्स्ट | विवरण |
| object | orders.items() | हमारे "orders" डिक्शनरी में सभी मानों को संदर्भित करता है। यदि हम केवल "orders" का उपयोग करते, तो हमें उसके व्यक्तिगत मान को प्राप्त करने के लिए आइटम के इंडेक्स पोजीशन को संदर्भित करना पड़ता। जबकि orders.items() का उपयोग करने पर, एक सूची में आइटम्स के साथ एक इटरेबल सूची बनाई जाती है। |
| key | key=lambda x: x[1] | एक सॉर्टिंग तंत्र जो हमें अपनी डिक्शनरी को मान के अनुसार सॉर्ट करने की अनुमति देता है। यह एक लैम्ब्डा फंक्शन का उदाहरण है, जो बिना नाम का एक फंक्शन है। |
| reverse | reverse=True | बताता है कि हम अपने डेटा को अवरोही क्रम में सॉर्ट करना चाहते हैं। |
अंत में, हम एक for लूप बनाते हैं जो हमारे sort_order विधि में बनाए गए प्रत्येक आइटम के माध्यम से लूप करता है और उसके कुंजी नाम और उसके मान दोनों को प्रिंट करता है, जिसे sort_order फंक्शन में निर्दिष्ट क्रम में सॉर्ट किया गया है।
उदाहरण 2: आरोही क्रम में सॉर्ट करें
इसी तरह, यदि हम अपनी कॉफी शॉप में बेचे जाने वाले सबसे कम लोकप्रिय ड्रिंक का पता लगाना चाहते हैं, तो हम ऊपर वाले कोड का उपयोग बिना reverse=True पैरामीटर के कर सकते हैं। यहाँ इसके लिए कोड का एक उदाहरण है:
orders = {
'cappuccino': 54,
'latte': 56,
'espresso': 72,
'americano': 48,
'cortado': 41
}
sort_orders = sorted(orders.items(), key=lambda x: x[1])
for i in sort_orders:
print(i[0], i[1])
जब हम अपना कोड चलाते हैं, तो निम्नलिखित मान लौटाए जाते हैं:
cortado 41 americano 48 cappuccino 54 latte 56 espresso 72
जैसा कि आप देख सकते हैं, हमारा कोड पिछले महीने ऑर्डर किए गए प्रत्येक आइटम की संख्या के आधार पर आरोही क्रम में व्यवस्थित आइटम्स की एक सूची लौटाता है।
लिस्ट कॉम्प्रिहेंशन
इसके अलावा, हम डिक्शनरी की सामग्री को मान के अनुसार सॉर्ट करने के लिए लिस्ट कॉम्प्रिहेंशन का उपयोग कर सकते हैं। लिस्ट कॉम्प्रिहेंशन पायथन में सूचियाँ बनाने की एक संक्षिप्त तकनीक है और यदि आप अधिक जटिल सॉर्ट मेथड बना रहे हैं तो यह स्थान बचा सकती है।
यहाँ वह कोड है जिसका उपयोग हम अपने कॉफी ऑर्डर्स को प्रत्येक कॉफी के ऑर्डर की संख्या के अनुसार आरोही क्रम में सॉर्ट करने के लिए लिस्ट कॉम्प्रिहेंशन का उपयोग करके करेंगे:
orders = {
'cappuccino': 54,
'latte': 56,
'espresso': 72,
'americano': 48,
'cortado': 41
}
[print(key, value) for (key, value) in sorted(orders.items(), key=lambda x: x[1])]
जब हम अपना कोड चलाते हैं, तो निम्नलिखित प्रतिक्रिया लौटाई जाती है:
cortado 41 americano 48 cappuccino 54 latte 56 espresso 72
हमारे कोड का परिणाम हमारे पिछले उदाहरण के समान था जहां हमने orders सूची की सामग्री को आरोही क्रम में सॉर्ट किया था। लेकिन sort_orders वेरिएबल को परिभाषित करने और सॉर्ट की गई सूची के माध्यम से पुनरावृति करने के लिए एक अलग for लूप बनाने के बजाय, हमने लिस्ट कॉम्प्रिहेंशन तकनीक का उपयोग करके एक सूची बनाई।
हमारे द्वारा ऊपर बनाई गई लिस्ट कॉम्प्रिहेंशन हमारी सूची में प्रत्येक आइटम को आरोही क्रम में सॉर्ट करती है, फिर प्रत्येक डिक्शनरी आइटम की कुंजी और मान को कंसोल पर प्रिंट करती है।
निष्कर्ष
जब आप पायथन में डिक्शनरी के साथ काम कर रहे होते हैं, तो डिक्शनरी को मान के अनुसार सॉर्ट करना एक सामान्य ऑपरेशन है। sorted() विधि आपको अपने डेटा के सेट को आपकी आवश्यकताओं के आधार पर सॉर्ट करने की अनुमति देती है।
इस ट्यूटोरियल में उदाहरण प्रदान करते हुए चर्चा की गई कि पायथन में डिक्शनरी को मान के अनुसार सॉर्ट करने के लिए sorted() विधि का उपयोग कैसे करें, जिसमें key और reverse पैरामीटर का उपयोग कैसे करें।
अब आप डिक्शनरी को मान के अनुसार एक पायथन प्रो की तरह सॉर्ट करना शुरू करने के लिए तैयार हैं!