Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन लिस्ट कॉम्प्रिहेंशन: एक कैसे करें गाइड

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

जब आप लिस्ट्स के साथ काम कर रहे होते हैं, तो आप किसी मौजूदा सीक्वेंस की सामग्री के आधार पर एक लिस्ट बनाना चाह सकते हैं। उदाहरण के लिए, आप वर्णों के अनुक्रम के आधार पर एक लिस्ट बनाना चाह सकते हैं। या आप एक ऐसी लिस्ट चाह सकते हैं जो किसी अन्य लिस्ट की सामग्री को दो से गुणा करती हो।

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

पायथन लिस्ट्स: एक पुनर्कथन

लिस्ट डेटा संरचना आपको पायथन में आइटम्स के संग्रह को संग्रहीत करने की अनुमति देती है। लिस्ट्स का उपयोग आमतौर पर तब किया जाता है जब आप कई मानों के साथ काम करना चाहते हैं जो किसी तरह से संबंधित हैं।

उदाहरण के लिए, आप एक आइसक्रीम स्टोर में बेचे जाने वाले सभी आइसक्रीम फ्लेवर्स को संग्रहीत करने के लिए एक लिस्ट का उपयोग कर सकते हैं। या आप वाइन क्लब के सदस्यों के फोन नंबरों की एक लिस्ट संग्रहीत करने के लिए एक लिस्ट का उपयोग कर सकते हैं।

पायथन में एक लिस्ट का उदाहरण यहां दिया गया है:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

अब जब हमने लिस्ट्स की मूल बातें संशोधित कर ली हैं, तो हम लिस्ट कॉम्प्रिहेंशन का उपयोग कैसे करें, इस बारे में बात करना शुरू कर सकते हैं।

पायथन लिस्ट कॉम्प्रिहेंशन

एक पायथन लिस्ट कॉम्प्रिहेंशन किसी अन्य लिस्ट की सामग्री से एक नई लिस्ट बनाता है। आप एक लिस्ट कॉम्प्रिहेंशन का उपयोग किसी लिस्ट को डुप्लिकेट करने या किसी मौजूदा लिस्ट की सामग्री को एक नई लिस्ट में संशोधित करने के लिए कर सकते हैं। या आप लिस्ट कॉम्प्रिहेंशन के साथ किसी अन्य इटरेबल की सामग्री को एक लिस्ट में स्थानांतरित कर सकते हैं।

आप फ़िल्टर निर्दिष्ट कर सकते हैं ताकि आपकी नई लिस्ट में केवल कुछ मान शामिल हों। उदाहरण के लिए, आप संख्याओं की एक लिस्ट से एक नई लिस्ट बना सकते हैं। आपकी नई लिस्ट में केवल 250 से बड़ी संख्याएं शामिल हो सकती हैं।

पायथन में लिस्ट कॉम्प्रिहेंशन का सिंटैक्स इस प्रकार है:

[expression for item in list]

यह सिंटैक्स पायथन for स्टेटमेंट के समान है। लेकिन, स्टेटमेंट एक लाइन पर है। एक for स्टेटमेंट के बीच अंतर करने के लिए, एक लिस्ट कॉम्प्रिहेंशन वर्गाकार कोष्ठक के भीतर संलग्न होता है।

उपरोक्त सिंटैक्स के तीन भाग हैं:

  • expression: अंतिम मान जो नई लिस्ट में जाता है।
  • item: वह व्यक्तिगत आइटम जिस पर आप इटरेट करते हैं।
  • list: वह लिस्ट या इटरेबल ऑब्जेक्ट जिसके माध्यम से लिस्ट कॉम्प्रिहेंशन पार करता है (स्वीकार्य डेटा प्रकारों में टुपल्स, स्ट्रिंग्स और लिस्ट्स शामिल हैं)।

आप पायथन इफ...एल्स स्टेटमेंट के साथ लिस्ट कॉम्प्रिहेंशन का उपयोग कर सकते हैं:

[expression for item in list if condition else none]

यह कॉम्प्रिहेंशन आइटम्स को लिस्ट में तभी जोड़ता है जब वे निर्दिष्ट शर्त को पूरा करते हैं।

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

कुछ लोग कहते हैं कि लिस्ट कॉम्प्रिहेंशन अधिक पायथनिक कोड हैं। ऐसा इसलिए है क्योंकि वे एक छोटे for स्टेटमेंट का उपयोग करने की तुलना में अधिक कुशल हैं।

पायथन लिस्ट कॉम्प्रिहेंशन उदाहरण

मान लें कि हम अपने स्टोर पर बेचे जाने वाले सभी चिकन पिज्जा की एक लिस्ट बनाना चाहते हैं। हम सभी चिकन पिज्जा को अपने मेनू पर चिकन श्रेणी में ले जा रहे हैं। ऐसा करने के लिए, हम for स्टेटमेंट्स का उपयोग करके अपने पिज्जा को फ़िल्टर कर सकते हैं। या, हम लिस्ट कॉम्प्रिहेंशन का उपयोग करके अपनी लिस्ट को फ़िल्टर कर सकते हैं।

हम अपने मौजूदा पिज्जा लिस्ट के आधार पर उन पिज्जा की एक नई लिस्ट बनाने के लिए लिस्ट कॉम्प्रिहेंशन का उपयोग कर सकते हैं जिनके नाम में चिकन शामिल है। हम इसे इस कोड का उपयोग करके कर सकते हैं:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']
chicken_pizzas = [p for p in pizzas if "Chicken" in p]
print(chicken_pizzas)

हमारा कॉम्प्रिहेंशन निम्नलिखित आउटपुट लिस्ट लौटाता है:

['Chicken', 'Chicken and Bacon', 'BBQ Chicken']

हमारे कोड में, हम पहले अपने मेनू पर पिज्जा की एक लिस्ट परिभाषित करते हैं। हमारे पिज्जा pizzas नामक पायथन वेरिएबल में संग्रहीत हैं। फिर, हम उन पिज्जा की एक नई लिस्ट बनाने के लिए लिस्ट कॉम्प्रिहेंशन का उपयोग करते हैं जिनके नाम में चिकन शामिल है।

हमारा लिस्ट कॉम्प्रिहेंशन निम्नलिखित भागों से मिलकर बना है:

  • p: यह वह मान है जिसे हमारी लिस्ट में जोड़ा जाना है।
  • for p in pizzas: यह हमारी "pizzas" लिस्ट में हर पिज्जा के माध्यम से लूप करता है।
  • if "Chicken" in p: यह जांचता है कि क्या प्रत्येक पिज्जा में "Chicken" है। यदि यह True मूल्यांकन करता है, तो "p" में संग्रहीत मान हमारी लिस्ट में जोड़ा जाता है।

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

लिस्ट कॉम्प्रिहेंशन के बिना

आइए चिकन पिज्जा उदाहरण पर लौटें। लिस्ट कॉम्प्रिहेंशन का उपयोग किए बिना, यदि हम अपने मेनू पर चिकन पिज्जा की एक लिस्ट बनाना चाहते थे, तो हम इस कोड का उपयोग करेंगे:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']
chicken_pizzas = []
for pizza in pizzas:
    if "Chicken" in pizza:
        chicken_pizzas.append(pizza)
print(chicken_pizzas)

हमारा कोड लौटाता है:

['Chicken', 'Chicken and Bacon', 'BBQ Chicken']

सबसे पहले, हम दो लिस्ट्स परिभाषित करते हैं। एक लिस्ट हमारे स्टोर पर बेचे जाने वाले पिज्जा की लिस्ट संग्रहीत करती है। दूसरी लिस्ट हमारे द्वारा बेचे जाने वाले सभी चिकन पिज्जा की लिस्ट संग्रहीत करती है। हमारे द्वारा बेचे जाने वाले चिकन पिज्जा की लिस्ट शुरू में खाली है।

हम अपनी पिज्जा लिस्ट में प्रत्येक पिज्जा के माध्यम से जाने के लिए एक "for" स्टेटमेंट का उपयोग करते हैं। फिर, हम जांचते हैं कि क्या प्रत्येक पिज्जा में चिकन शब्द है। यदि एक पिज्जा में चिकन शब्द है, तो हम उस पिज्जा को अपनी चिकन पिज्जा की लिस्ट में जोड़ते हैं। इस मामले में, तीन पिज्जा में चिकन है, और उन सभी तीन पिज्जा को हमारे chicken_pizzas लिस्ट में जोड़ा जाता है।

जैसा कि आप देख सकते हैं, यह जांचने के लिए कि क्या एक पिज्जा में चिकन है और इसे हमारी लिस्ट में जोड़ने के लिए, हम तीन लाइन कोड का उपयोग करते हैं। इस कोड को लिखने का एक अधिक कुशल तरीका है: लिस्ट कॉम्प्रिहेंशन का उपयोग करना।

इफ...एल्स का उपयोग करके लिस्ट कॉम्प्रिहेंशन

आप लिस्ट कॉम्प्रिहेंशन के साथ एक इफ...एल्स स्टेटमेंट का भी उपयोग कर सकते हैं।

पहले, हमने अपनी चिकन पिज्जा की लिस्ट में एक पिज्जा जोड़ने के लिए एक इफ स्टेटमेंट का उपयोग किया था। हमने केवल एक पिज्जा तभी जोड़ा जब पिज्जा के नाम में चिकन शब्द शामिल था। लेकिन, मान लें कि हम यह सूची बना रहे हैं कि कौन से पिज्जा शाकाहारी हैं।

यदि पिज्जा के नाम में चिकन है तो हम लिस्ट में "मीट" जोड़ना चाहते हैं और यदि पिज्जा के नाम में चिकन नहीं है तो वेजिटेरियन जोड़ना चाहते हैं।

यह लिस्ट कॉम्प्रिहेंशन का उपयोग करके किया जा सकता है:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']
is_veggie = ["Meat" if "Chicken" in p else "Vegetarian" for p in pizzas]
print(is_veggie)

हमारा कोड लौटाता है:

['Meat', 'Vegetarian', 'Meat', 'Vegetarian', 'Vegetarian', 'Meat']

आइए हमारे कोड को तोड़ें। सबसे पहले, हम pizzas नामक एक पिज्जा लिस्ट घोषित करते हैं। फिर, हम यह आकलन करने के लिए लिस्ट कॉम्प्रिहेंशन का उपयोग करते हैं कि क्या पिज्जा के नाम में चिकन है या नहीं।

यदि पिज्जा के नाम में चिकन है, तो मान मीट हमारी is_veggie लिस्ट में जोड़ा जाता है। अन्यथा, मान वेजिटेरियन जोड़ा जाता है।

जैसा कि आप देख सकते हैं, हमारी is_veggie लिस्ट में पहला मान मीट है, क्योंकि pizzas लिस्ट में इसका संबंधित मान चिकन है। लेकिन, हमारा अगला मान वेजिटेरियन है, क्योंकि pizzas लिस्ट में इसका संबंधित मान मार्गेरिटा है, जिसमें चिकन नहीं है।



निष्कर्ष

लिस्ट कॉम्प्रिहेंशन आपको किसी मौजूदा लिस्ट के आधार पर एक नई लिस्ट बनाने की अनुमति देते हैं। लिस्ट कॉम्प्रिहेंशन का उपयोग करके, आप किसी लिस्ट की एक प्रति बना सकते हैं, या किसी पुरानी लिस्ट से मानों को फ़िल्टर करके एक नई लिस्ट बना सकते हैं।

इस ट्यूटोरियल ने उदाहरणों के संदर्भ में, पायथन लिस्ट्स की मूल बातें और नई लिस्ट्स बनाने के लिए लिस्ट कॉम्प्रिहेंशन तकनीक का उपयोग कैसे करें, इस पर चर्चा की।

क्या आप पायथन में कोडिंग के बारे में अधिक जानना चाहते हैं? हमारी "पायथन कैसे सीखें" गाइड देखें। इस गाइड में आपकी पायथन में महारत हासिल करने की यात्रा जारी रखने में मदद करने के लिए सीखने के संसाधनों की एक सूची है।


  1. - पायथन में सूची में खोजें: एक शुरुआती गाइड

    आप पायथन सूची में किसी आइटम को कैसे ढूंढते हैं? यह एक सवाल है जिसका सामना सभी पायथन कोडर्स किसी न किसी बिंदु पर करते हैं। सौभाग्य से, भाषा कई तरीके प्रदान करती है जिनसे आप किसी सूची में आइटम ढूंढ सकते हैं, जैसे in ऑपरेटर या लीनियर सर्च का उपयोग करना। इस गाइड में, हम सूची में आइटम ढूंढने के चार तरीक

  1. - पायथन स्विच स्टेटमेंट: एक कैसे-कैसे गाइड

    स्विच स्टेटमेंट्स: एक रिफ्रेशर स्विच स्टेटमेंट आपको कोड ब्लॉक्स के एक सेट से एक को चुनकर चलाने देता है। वे प्रोग्राम में कई एक्सप्रेशन्स का मूल्यांकन करने का एक तरीका हैं। स्विच स्टेटमेंट स्विच स्टेटमेंट का मूल्यांकन करके और उस स्टेटमेंट के परिणाम की तुलना केस स्टेटमेंट्स में मानों से करके काम करता

  1. पायथन Hello World: एक कैसे-कैसे गाइड पायथन Hello World: एक कैसे-कैसे गाइड

    पायथन Hello World: टर्मिनल का उपयोग करना अपने टर्मिनल में, पायथन इंटरप्रेटर खोलने के लिए python3 टाइप करें। ज्यादातर मामलों में, यह काम करता है, लेकिन कुछ ऑपरेटिंग सिस्टम पायथन इंटरप्रेटर खोलने की कमांड के रूप में python या py का उपयोग कर सकते हैं। जब तक यह 3 से अधिक पायथन वर्जन शुरू करता है, आप ठीक