Python में Dictionary को मानों (values) के आधार पर कैसे सॉर्ट करें
Python में dictionary को मानों के आधार पर सॉर्ट करने के कुशल तरीके सीखें। आरोही और अवरोही क्रम में सॉर्टिंग जानें और key सॉर्टिंग के लिए बोनस टिप्स पाएँ।
Sorting डेटा मैनिपुलेशन का एक बुनियादी ऑपरेशन है, और Python की dictionaries भी इससे अलग नहीं हैं। हम चाहे किसी जटिल डेटा विश्लेषण प्रोजेक्ट पर काम कर रहे हों या एक साधारण स्क्रिप्ट पर, यह समझना कि किसी dictionary को मान (value) के आधार पर कुशलतापूर्वक कैसे सॉर्ट किया जाए, बेहद उपयोगी साबित हो सकता है।
इस लेख में, हम Python में dictionaries को उनके मानों के आधार पर सॉर्ट करने के विभिन्न तरीकों को सरलता से समझते हैं, ताकि आवश्यकता के अनुसार डेटा को व्यवस्थित करने के लिए हमारे पास सही टूल्स हों।
संक्षिप्त उत्तर: Python में Dictionary को मान (value) के आधार पर कैसे सॉर्ट करें
Dictionary को मानों के आधार पर जल्दी सॉर्ट करने के लिए, हम Python के बिल्ट-इन .sorted() फ़ंक्शन को lambda फ़ंक्शन के साथ मिलाकर उपयोग कर सकते हैं। अधिकांश मामलों में यह तरीका सीधा और कुशल होता है।
अब, एक कदम पीछे चलते हैं और Python dictionaries को समझते हैं तथा यह भी कि हमें इन्हें क्यों सॉर्ट करना पड़ सकता है।
Python Dictionaries क्या हैं?
Python dictionaries ऐसी डेटा संरचना है जो डेटा को key-value जोड़ों में संग्रहीत करती है। ये बेहद बहुमुखी होती हैं और तेज़ी से lookup, insertion, और deletion की सुविधा देती हैं। यहाँ एक सरल उदाहरण है:
ऊपर दी गई dictionary में, विद्यार्थियों के नाम keys हैं, और उनके अंक values हैं।
Dictionaries कई परिदृश्यों में उपयोगी होती हैं, खासकर जब हमें डेटा को कुशलता से स्टोर और रिट्रीव करना हो। हालांकि, कई बार keys के बजाय values के आधार पर सॉर्ट करना आवश्यक हो जाता है—जैसे कि जब हम विद्यार्थियों को उनके अंकों के आधार पर रैंक करना चाहते हैं।
Python में Dictionary को मान (value) के आधार पर कैसे सॉर्ट करें
अब, Python के .sorted() फ़ंक्शन को थोड़ा गहराई से देखते हैं और समझते हैं कि dictionary को मानों के आधार पर सॉर्ट करने में इसे विशेष रूप से कैसे इस्तेमाल करें।
.sorted() का उपयोग करके dictionary को मानों के आधार पर कैसे सॉर्ट करें
.sorted() फ़ंक्शन Python में सॉर्टिंग के लिए एक शक्तिशाली और लचीला टूल है। किसी dictionary को उसके मानों के आधार पर सॉर्ट करने के लिए, हम एक lambda फ़ंक्शन का उपयोग करते हैं जो यह निर्दिष्ट करता है कि सॉर्टिंग dictionary की values पर आधारित होनी चाहिए।
इस उदाहरण में, student_scores.items() एक view ऑब्जेक्ट लौटाता है जो dictionary के key-value ट्यूपल जोड़ों की सूची दिखाता है। .sorted() फ़ंक्शन इन जोड़ों को values (item[1]) के आधार पर सॉर्ट करता है, और dict() उस सॉर्ट की गई सूची को फिर से dictionary में बदल देता है।
आरोही या अवरोही क्रम में dictionary को मानों के आधार पर कैसे सॉर्ट करें
डिफॉल्ट रूप से, .sorted() फ़ंक्शन आरोही क्रम में सॉर्ट करता है। फिर भी, स्थिति के अनुसार हम reverse पैरामीटर को True या False सेट करके इसे आसानी से अवरोही या आरोही क्रम में बदल सकते हैं।
आरोही क्रम में dictionary को कैसे सॉर्ट करें
जैसा बताया गया, .sorted() फ़ंक्शन का उपयोग करते समय dictionary डिफॉल्ट रूप से आरोही क्रम में सॉर्ट होगी। हम reverse पैरामीटर को False सेट करके भी यही प्राप्त कर सकते हैं।
बोनस: Python में Dictionary को key के आधार पर कैसे सॉर्ट करें
जहाँ यह लेख मानों के आधार पर सॉर्टिंग पर केंद्रित है, वहीं यह जानना भी उपयोगी है कि dictionary को उसकी keys के आधार पर कैसे सॉर्ट करें। यह भी समान रूप से.sorted() फ़ंक्शन से किया जा सकता है।
Python में किसी dictionary को उसके मानों के आधार पर सॉर्ट करना एक सामान्य कार्य है जिसे .sorted() फ़ंक्शन से आसानी से पूरा किया जा सकता है। हमें डेटा को चाहे आरोही क्रम में चाहिए या अवरोही में, इन तकनीकों की समझ हमारे डेटा मैनिपुलेशन कार्यों को अधिक सरल और अधिक कुशल बना देगी। इन सॉर्टिंग विधियों में दक्षता हासिल करके, हम सुनिश्चित कर सकते हैं कि हमारा डेटा लगातार सुव्यवस्थित रहे और हमारी आवश्यकताओं के अनुरूप हो।
FAQs
Q1: अगर values संख्याओं के बजाय strings हों, तो क्या मैं dictionary को values के आधार पर सॉर्ट कर सकता/सकती हूँ?
A1: हाँ, हम dictionary को मानों के आधार पर सॉर्ट कर सकते हैं, भले ही मान strings हों। .sorted() फ़ंक्शन मानों को वर्णक्रमानुसार (alphabetically) आरोही या अवरोही क्रम में उसी तरह सॉर्ट करेगा जैसे वह संख्याओं के साथ करता है।
Q2: अगर dictionary में nested dictionaries हों तो मैं मानों के आधार पर कैसे सॉर्ट करूँ?
A2: Nested dictionaries वाली dictionary को सॉर्ट करने के लिए, हमें एक कस्टम सॉर्टिंग फ़ंक्शन निर्धारित करना होगा जो संबंधित nested मानों को निकालकर उनकी तुलना करे। इसके लिए अधिक जटिल lambda फ़ंक्शन या तुलना संभालने हेतु एक अलग फ़ंक्शन की आवश्यकता होती है।
Q3: क्या मैं बिना नई dictionary बनाए, मानों के आधार पर dictionary को in-place सॉर्ट कर सकता/सकती हूँ?
A3: नहीं, Python 3.7 से पहले dictionaries स्वभावतः unordered कलेक्शंस हैं, और 3.7 से insertion order बनाए रखने के बावजूद, उन्हें in-place सॉर्ट करने की कोई बिल्ट-इन विधि नहीं है। किसी dictionary को सॉर्ट करने पर हमेशा वांछित क्रम वाली एक नई dictionary बनती है।
Q4: Python में मानों के आधार पर dictionary को सॉर्ट करने की समय-जटिलता क्या है?
A4: .sorted() फ़ंक्शन से dictionary को मानों के आधार पर सॉर्ट करने की समय-जटिलता O(n log n) है, जहाँ n dictionary में key-value जोड़ों की संख्या है। ऐसा इसलिए है क्योंकि .sorted() आंतरिक रूप से Timsort का उपयोग करता है, जो एक हाइब्रिड सॉर्टिंग एल्गोरिथ्म है और इसी जटिलता के साथ काम करता है।
Q5: क्या मानों के आधार पर dictionary को सॉर्ट करने से मूल dictionary बदल जाएगी?
A5: नहीं, .sorted() फ़ंक्शन से dictionary को मानों के आधार पर सॉर्ट करना एक नई dictionary बनाता है। मूल dictionary अपरिवर्तित रहती है।
Author
Neetika Khandelwal
मैं एक Java डेवलपर और अनुभवी तकनीकी लेखक हूं, जो डेटा साइंस, आर्टिफिशियल इंटेलिजेंस (AI) और Java प्रोग्रामिंग में विशेषज्ञता रखता/रखती हूं। सॉफ्टवेयर डेवलपमेंट में 3+ वर्षों के अनुभव के साथ, मैंने मज़बूत और स्केलेबल एप्लिकेशन बनाने तथा जटिल समस्याओं को हल करने के लिए Java की बहुआयामी क्षमताओं का प्रभावी उपयोग करने में अच्छी दक्षता विकसित की है। व्यापक तकनीकी लेखों, ट्यूटोरियल्स और गाइड्स के माध्यम से मैं व्यापक टेक समुदाय के साथ ज्ञान साझा करने के प्रति उत्साही हूं। मेरा प्रयास रहता है कि डेटा साइंस और AI जैसे जटिल विषयों को सरल बनाकर शुरुआती और अनुभवी पेशेवरों—दोनों के लिए सुलभ किया जाए। वर्तमान में, मेरे 125+ ब्लॉग प्रकाशित हैं।
Python के साथ डेटा विश्लेषण की बुनियादी बातें सिर्फ चार घंटे में सीखें। यह ऑनलाइन पाठ्यक्रम Python इंटरफ़ेस का परिचय देगा और लोकप्रिय पैकेजों का अन्वेषण करेगा।