हम दिए गए पायथन सीक्वेंस का उपयोग करके नए सीक्वेंस बना सकते हैं। इसे कॉम्प्रिहेंशन कहा जाता है। यह मूल रूप से एक संक्षिप्त कोड ब्लॉक लिखने का एक तरीका है जो किसी अन्य सीक्वेंस का उपयोग करके एक सीक्वेंस उत्पन्न करता है जो एक लिस्ट, डिक्शनरी, सेट या जनरेटर हो सकता है। इसमें विभिन्न प्रकार के सीक्वेंस के बीच रूपांतरण के कई चरण शामिल हो सकते हैं।
लिस्ट कॉम्प्रिहेंशन
इस मेथड में, हम एक मौजूदा लिस्ट के वैल्यूज़ को मैनिपुलेट करके एक नई लिस्ट बनाते हैं। नीचे दिए गए उदाहरण में हम एक लिस्ट लेते हैं और दी गई लिस्ट के प्रत्येक एलिमेंट में 3 जोड़कर एक नई लिस्ट बनाते हैं।
उदाहरण
given_list = [x for x in range(5)] print(given_list) new_list = [var + 3 for var in given_list] print(new_list)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
[0, 1, 2, 3, 4] [3, 4, 5, 6, 7]
डिक्शनरी कॉम्प्रिहेंशन्स
उपरोक्त के समान हम एक लिस्ट ले सकते हैं और उससे एक डिक्शनरी बना सकते हैं।
उदाहरण
given_list = [x for x in range(5)]
print(given_list)
# new_list = [var+3 for var in given_list]
new_dict = {var: var + 3 for var in given_list}
print(new_dict)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
[0, 1, 2, 3, 4]
{0: 3, 1: 4, 2: 5, 3: 6, 4: 7}
हम दो लिस्ट भी ले सकते हैं और उनसे एक नई डिक्शनरी बना सकते हैं।
उदाहरण
list1 = [x for x in range(5)]
list2 = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
print(list1)
print(list2)
new_dict = {key: value for (key, value) in zip(list1, list2)}
print(new_dict)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
[0, 1, 2, 3, 4]
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
{0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu', 4: 'Fri'}
सेट कॉम्प्रिहेंशन
हम उपरोक्त के समान दृष्टिकोण ले सकते हैं और मौजूदा सेट या लिस्ट से नया सेट बना सकते हैं। नीचे दिए गए उदाहरण में हम मौजूदा सेट के एलिमेंट्स में 3 जोड़कर एक नया सेट बनाते हैं।
उदाहरण
given_set = {x for x in range(5)}
print(given_set)
new_set = {var + 3 for var in given_set}
print(new_set)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
{0, 1, 2, 3, 4}
{3, 4, 5, 6, 7}
जनरेटर कॉम्प्रिहेंशन
मौजूदा लिस्ट से नए जनरेटर बनाए जा सकते हैं। ये जनरेटर मेमोरी कुशल होते हैं क्योंकि वे आइटम्स जनरेट होने पर मेमोरी आवंटित करते हैं, न कि शुरुआत में।
उदाहरण
given_list = [x for x in range(5)]
print(given_list)
new_gen = (var + 3 for var in given_list)
for var1 in new_gen:
print(var1, end=" ")
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
[0, 1, 2, 3, 4] 3 4 5 6 7