Python में लिस्ट सॉर्ट करने के तरीके: पूरी गाइड
डेटा को सॉर्ट करना लगभग हर एप्लिकेशन का एक अहम हिस्सा है - चाहे वह यूज़र इनपुट प्रोसेस करना हो या डेटा एनालिसिस के कॉम्प्लेक्स एल्गोरिदम। Python में लिस्ट के साथ काम करना बेहद आसान है, और सॉर्टिंग टूल्स आपको बहुत लचीलापन और पावर देते हैं।
Python लिस्ट की बेसिक जानकारी
Python में लिस्ट एक ऑर्डर्ड और म्यूटेबल कलेक्शन होती है। इसमें आप अलग-अलग डेटा टाइप के एलिमेंट स्टोर कर सकते हैं और इंडेक्स की मदद से उन्हें एक्सेस कर सकते हैं।
numbers = [5, 2, 9, 1, 5, 6]
words = ["banana", "apple", "cherry"]
mixed_list = [1, "hello", 3.14, True]
लिस्ट सॉर्ट करने के मुख्य तरीके
Python में लिस्ट सॉर्ट करने के दो मुख्य तरीके हैं: sort() मेथड और sorted() फंक्शन। दोनों के अपने फायदे और उपयोग के तरीके हैं।
sort() मेथड - ओरिजिनल लिस्ट को बदलना
sort() मेथड ओरिजिनल लिस्ट को बदल देता है और None रिटर्न करता है। यह मेमोरी के लिहाज से कुशल है क्योंकि यह नई लिस्ट नहीं बनाता।
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers) # [1, 2, 5, 9]
sort() मेथड के पैरामीटर
sort() मेथड ये पैरामीटर लेता है:
reverse: सॉर्टिंग की दिशा तय करता है (True का मतलब घटते क्रम में, False का मतलब बढ़ते क्रम में)key: एक फंक्शन जो सॉर्टिंग का क्राइटेरिया तय करता है
numbers = [5, 2, 9, 1]
numbers.sort(reverse=True)
print(numbers) # [9, 5, 2, 1]
sorted() फंक्शन - नई सॉर्टेड लिस्ट बनाना
sorted() फंक्शन एक नई सॉर्टेड लिस्ट रिटर्न करता है, बिना ओरिजिनल लिस्ट को बदले। यह तब उपयोगी है जब आपको एलिमेंट का ओरिजिनल ऑर्डर बचाना हो।
numbers = [5, 2, 9, 1]
new_numbers = sorted(numbers)
print(new_numbers) # [1, 2, 5, 9]
print(numbers) # [5, 2, 9, 1] - ओरिजिनल लिस्ट नहीं बदली
sorted() के साथ घटते क्रम में सॉर्ट करना
numbers = [5, 2, 9, 1]
sorted_desc = sorted(numbers, reverse=True)
print(sorted_desc) # [9, 5, 2, 1]
सॉर्टिंग मेथड्स की तुलना
| मेथड | लिस्ट बदलता है? | वैल्यू रिटर्न करता है? | कब उपयोग करें |
|---|---|---|---|
| sort() | हाँ | नहीं (None) | जब ओरिजिनल ऑर्डर की ज़रूरत न हो |
| sorted() | नहीं | नई लिस्ट | जब ओरिजिनल डेटा बचाना हो |
लिस्ट में स्ट्रिंग्स को सॉर्ट करना
अल्फाबेटिकल सॉर्टिंग
स्ट्रिंग्स को सॉर्ट करते समय Python डिफ़ॉल्ट रूप से लेक्सिकोग्राफिकल ऑर्डर का उपयोग करता है:
words = ["banana", "apple", "cherry"]
words.sort()
print(words) # ['apple', 'banana', 'cherry']
घटते क्रम में सॉर्ट करना
words = ["banana", "apple", "cherry"]
words.sort(reverse=True)
print(words) # ['cherry', 'banana', 'apple']
स्ट्रिंग सॉर्टिंग में केस का ध्यान
केस सेंसिटिविटी
डिफ़ॉल्ट रूप से सॉर्टिंग केस सेंसिटिव होती है। ASCII टेबल में कैपिटल लेटर्स छोटे लेटर्स से पहले आते हैं:
words = ["Banana", "apple", "Cherry"]
print(sorted(words)) # ['Banana', 'Cherry', 'apple']
केस इग्नोर करके सॉर्ट करना
केस को इग्नोर करने के लिए key=str.lower पैरामीटर का उपयोग करें:
words = ["Banana", "apple", "Cherry"]
print(sorted(words, key=str.lower)) # ['apple', 'Banana', 'Cherry']
जटिल डेटा स्ट्रक्चर को सॉर्ट करना
लिस्ट ऑफ़ लिस्ट्स को सॉर्ट करना
data = [[1, 'banana'], [3, 'apple'], [2, 'cherry']]
data.sort(key=lambda x: x[1]) # दूसरे एलिमेंट के हिसाब से सॉर्ट करें
print(data) # [[3, 'apple'], [1, 'banana'], [2, 'cherry']]