पाइथॉन में सूचियां बनाने के लिए सूची समझ एक शक्तिशाली और कुशल तरीका है।
वे मौजूदा पुनरावृत्तियों के आधार पर सूचियां तैयार करने का एक संक्षिप्त और पठनीय तरीका प्रदान करते हैं।
लेख में, मैं सूची समझ की बारीकियों, पारंपरिक लूपों पर उनके लाभों और विभिन्न व्यावहारिक अनुप्रयोगों का पता लगाऊंगा।
सूची समझ लूपिंग और सशर्त तर्क को कोड की एक पंक्ति में जोड़कर सूचियां बनाने का एक वाक्यात्मक रूप से संक्षिप्त तरीका है।
इसके परिणामस्वरूप सूचियां तैयार करने का तरीका अधिक पठनीय और अभिव्यंजक हो जाता है, जिससे एक नज़र में कोड के इरादे को समझना आसान हो जाता है।
सूची समझ की मूल संरचना इस प्रकार है:
[expression for item in iterable if condition]
आइए इस संरचना के घटकों को तोड़ें:
बुनियादी सूची समझ:
numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] print(squares) # Output: [1, 4, 9, 16, 25]
यह उदाहरण संख्याओं की मौजूदा सूची से वर्गों की एक नई सूची बनाने के लिए सूची समझ का उपयोग करता है।
एक शर्त के साथ सूची समझ:
numbers = [1, 2, 3, 4, 5] even_squares = [x**2 for x in numbers if x % 2 == 0] print(even_squares) # Output: [4, 16]
यह उदाहरण केवल सम संख्याओं को शामिल करने के लिए संख्याओं को फ़िल्टर करता है, जिन्हें तब वर्गित किया जाता है, जो सूची समझ में एक if शर्त के उपयोग को प्रदर्शित करता है।
सूची समझ पारंपरिक लूप की तुलना में कई लाभ प्रदान करती है:
सूची समझ का उपयोग डेटा में हेरफेर और प्रसंस्करण के लिए विभिन्न तरीकों से किया जा सकता है।
यहां कुछ सामान्य उपयोग के मामले दिए गए हैं:
फ़िल्टरिंग सूचियाँ:
words = ["apple", "banana", "cherry", "date"] short_words = [word for word in words if len(word)यह उदाहरण केवल 5 या उससे कम वर्णों वाले शब्दों को शामिल करने के लिए शब्दों की एक सूची को फ़िल्टर करता है।
परिवर्तनकारी सूचियाँ:
temperatures_celsius = [0, 20, 30, 40] temperatures_fahrenheit = [(temp * 9/5) 32 for temp in temperatures_celsius] print(temperatures_fahrenheit) # Output: [32.0, 68.0, 86.0, 104.0]यह उदाहरण तापमान की सूची को सेल्सियस से फ़ारेनहाइट में परिवर्तित करता है।
नेस्टेड सूची समझ:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flattened = [num for row in matrix for num in row] print(flattened) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]यह उदाहरण नेस्टेड सूची समझ का उपयोग करके 2डी सूची (मैट्रिक्स) को 1डी सूची में समतल करता है।
ट्यूपल्स की सूचियां बनाना:
pairs = [(x, y) for x in range(3) for y in range(3)] print(pairs) # Output: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]यह उदाहरण दो श्रेणियों से संख्याओं के सभी संभावित जोड़े (टुपल्स) की एक सूची तैयार करता है।
डुप्लिकेट हटा रहा है:
list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_list = list(set([x for x in list_with_duplicates])) print(unique_list) # Output: [1, 2, 3, 4, 5]यह उदाहरण किसी सूची से डुप्लिकेट को एक सेट में परिवर्तित करके और वापस एक सूची में हटाकर हटा देता है।
अधिक उन्नत विषय
आइए अब सूची समझ विविधताओं के संबंध में कुछ और उन्नत विषयों का पता लगाएं।
जेनरेटर एक्सप्रेशन
जेनरेटर अभिव्यक्तियाँ सूची समझ के समान हैं लेकिन सूची के बजाय पुनरावर्तनीय उत्पन्न करती हैं।बड़े डेटासेट के साथ काम करते समय यह अधिक मेमोरी-कुशल हो सकता है, क्योंकि आइटम एक ही बार में मेमोरी में संग्रहीत होने के बजाय तुरंत उत्पन्न होते हैं।
numbers = [1, 2, 3, 4, 5] squares_generator = (x**2 for x in numbers) for square in squares_generator: print(square) # Output # 1 # 4 # 9 # 16 # 25शब्दकोश और सेट समझ
पायथन शब्दकोश और सेट समझ का भी समर्थन करता है, जो आपको सूची समझ के समान संक्षिप्त तरीके से शब्दकोश और सेट बनाने की अनुमति देता है।# Dictionary comprehension numbers = [1, 2, 3, 4, 5] squares_dict = {x: x**2 for x in numbers} print(squares_dict) # Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25} # Set comprehension list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_set = {x for x in list_with_duplicates} print(unique_set) # Output: {1, 2, 3, 4, 5}निष्कर्ष
सूची समझ पायथन में एक शक्तिशाली और बहुमुखी उपकरण है जो आपको संक्षिप्त और पठनीय तरीके से सूचियां बनाने में सक्षम बनाता है।
वे आपके कोड को सरल बना सकते हैं, प्रदर्शन में सुधार कर सकते हैं और डेटा में हेरफेर और प्रसंस्करण को आसान बना सकते हैं।
सूची समझ और उनकी उन्नत सुविधाओं में महारत हासिल करके, आप अधिक कुशल और स्वच्छ पायथन कोड लिख सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3