पाइथन सूचीहरू (एरेहरू) को विशिष्ट तत्वहरू निकाल्नुहोस्, बदल्नुहोस् र रूपान्तरण गर्नुहोस्।

व्यापार

पाइथनमा नयाँ सूची उत्पन्न गर्नको लागि अवस्थित सूची (एरे) को केवल ती तत्वहरू निकालेर वा मेटाएर जुन निश्चित सर्तहरू पूरा गर्दछ, वा प्रतिस्थापन वा रूपान्तरणहरू प्रदर्शन गरेर, सूची बुझाइ प्रयोग गर्नुहोस्।

यहाँ नमूना कोड सहितको व्याख्या गरिएको छ।

  • सूची समझको आधारभूत रूप
  • सूचीको सबै तत्वहरूमा प्रक्रिया लागू गर्नुहोस्
  • मापदण्ड पूरा गर्ने सूचीबाट तत्वहरू निकाल्नुहोस् र मेटाउनुहोस्
  • सूचीको सर्तहरू पूरा गर्ने तत्वहरू बदल्नुहोस् वा रूपान्तरण गर्नुहोस्

स्ट्रिङहरूको सूचीहरूको विशिष्ट उदाहरणहरूको लागि निम्न लेख हेर्नुहोस्।

मापदण्ड पूरा नगर्ने तत्वहरूलाई अनियमित रूपमा निकाल्न पनि सम्भव छ।

नोट गर्नुहोस् कि सूचीहरूले विभिन्न प्रकारका डेटा भण्डारण गर्न सक्छ र एरेहरू भन्दा कडा रूपमा फरक छन्। यदि तपाइँ प्रक्रियाहरूमा एरेहरू ह्यान्डल गर्न चाहनुहुन्छ जुन मेमोरी साइज र मेमोरी ठेगानाहरू वा ठूलो डाटाको संख्यात्मक प्रशोधन आवश्यक पर्दछ, एरे (मानक पुस्तकालय) वा NumPy प्रयोग गर्नुहोस्।

निम्न सूची एक उदाहरण हो

l = list(range(-5, 6))
print(l)
# [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]

सूची समझको आधारभूत रूप

सूचीबाट नयाँ सूची उत्पन्न गर्दा, लूपहरूको लागि भन्दा लेख्नको लागि सूची बुझाइ सजिलो हुन्छ।

[expression for any variable name in iterable object if conditional expression]

एक अभिव्यक्ति एक तत्वमा लागू हुन्छ जसले पुनरावृत्तियोग्य वस्तुको सशर्त अभिव्यक्तिलाई सन्तुष्ट गर्दछ (जस्तै सूची वा टपल) र नयाँ सूचीको तत्व हुन्छ। “यदि सशर्त अभिव्यक्ति” लाई हटाउन सकिन्छ, जुन अवस्थामा अभिव्यक्ति सबै तत्वहरूमा लागू हुन्छ।

थप विवरणहरूको लागि निम्न लेख हेर्नुहोस्, नेस्टेड सूची बुझाइ सङ्केत सहित।

सूचीको सबै तत्वहरूमा प्रक्रिया लागू गर्नुहोस्

उदाहरणका लागि, यदि तपाइँ सूचीको सबै तत्वहरूमा केही प्रशोधन लागू गर्न चाहनुहुन्छ भने, माथिको सूची बुझाइ अभिव्यक्तिमा इच्छित प्रक्रियाको वर्णन गर्नुहोस्।

l_square = [i**2 for i in l]
print(l_square)
# [25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]

l_str = [str(i) for i in l]
print(l_str)
# ['-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5']

यो संख्याहरूको सूची र तारहरूको सूचीहरू बीच रूपान्तरण गर्न प्रयोग गर्न सकिन्छ।

मापदण्ड पूरा गर्ने सूचीबाट तत्वहरू निकाल्नुहोस् र मेटाउनुहोस्

यदि तत्व केवल सशर्त अभिव्यक्ति द्वारा चयन गर्न को लागी हो, यो एक अभिव्यक्ति द्वारा प्रशोधन गरिएको छैन, त्यसैले यो निम्न फारम लिन्छ

[variable name for variable name in original list if conditional expression]

एउटा नयाँ सूची उत्पन्न हुन्छ जसबाट केवल सर्त पूरा गर्ने तत्वहरू (तत्वहरू जसको लागि सशर्त अभिव्यक्ति सत्य हो) निकालिन्छ।

l_even = [i for i in l if i % 2 == 0]
print(l_even)
# [-4, -2, 0, 2, 4]

l_minus = [i for i in l if i < 0]
print(l_minus)
# [-5, -4, -3, -2, -1]

यदि “यदि सशर्त अभिव्यक्ति” लाई “यदि सशर्त अभिव्यक्ति” मा सेट गरिएको छ भने, यो एक अस्वीकार बन्छ, र केवल सर्त पूरा नगर्ने तत्वहरू (तत्वहरू जसको लागि सशर्त अभिव्यक्ति गलत छ) चयन र निकाल्न सकिन्छ। अर्को शब्दमा, एउटा नयाँ सूची उत्पन्न हुन्छ जसबाट सर्त पूरा गर्ने तत्वहरू हटाइन्छ।

l_odd = [i for i in l if not i % 2 == 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]

l_plus = [i for i in l if not i < 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]

निस्सन्देह, समान नतिजा बिना प्रयोग नगरी समान सशर्त अभिव्यक्ति निर्दिष्ट गरेर प्राप्त गरिन्छ।

l_odd = [i for i in l if i % 2 != 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]

l_plus = [i for i in l if i >= 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]

सशर्त अभिव्यक्ति भाग धेरै सर्तहरू हुन सक्छ। नकारात्मक नोटहरू पनि प्रयोग गर्न सकिन्छ।

l_minus_or_even = [i for i in l if (i < 0) or (i % 2 == 0)]
print(l_minus_or_even)
# [-5, -4, -3, -2, -1, 0, 2, 4]

l_minus_and_odd = [i for i in l if (i < 0) and not (i % 2 == 0)]
print(l_minus_and_odd)
# [-5, -3, -1]

सूचीको सर्तहरू पूरा गर्ने तत्वहरू बदल्नुहोस् वा रूपान्तरण गर्नुहोस्

माथिको तत्व निकासीको उदाहरणमा, सर्तहरू पूरा नगर्ने तत्वहरू हटाइयो।

यदि तपाइँ सर्तहरू पूरा गर्ने तत्वहरूमा मात्र प्रतिस्थापन, रूपान्तरण, इत्यादि प्रदर्शन गर्न चाहनुहुन्छ भने, सूची बुझ्ने नोटेशनको अभिव्यक्ति भागमा टर्नरी अपरेटर लागू गर्नुहोस्।

पाइथनमा, टर्नरी अपरेटरलाई निम्नानुसार लेख्न सकिन्छ

True Value if Conditional Expression else False Value
a = 80
x = 100 if a > 50 else 0
print(x)
# 100

b = 30
y = 100 if b > 50 else 0
print(y)
# 0

यो अलि जटिल छ, तर सूची समझ नोटेशन र टर्नरी अपरेटरहरूको संयोजन निम्नानुसार छ।

[True Value if Conditional Expression else False Value for any variable name in original list]

कोष्ठक मा संलग्न भाग ternary अपरेटर हो (वास्तविक कोड मा कोष्ठक आवश्यक छैन)।

[(True Value if Conditional Expression else False Value) for any variable name in original list]

यदि कुनै पनि चर नाम सही वा गलत मानहरूको लागि लेखिएको छ भने, मूल तत्वको मान जस्तै प्रयोग गरिन्छ। यदि अभिव्यक्ति लेखिएको छ भने, त्यो अभिव्यक्तिको प्रशोधन लागू हुन्छ।

l_replace = [100 if i > 0 else i for i in l]
print(l_replace)
# [-5, -4, -3, -2, -1, 0, 100, 100, 100, 100, 100]

l_replace2 = [100 if i > 0 else 0 for i in l]
print(l_replace2)
# [0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 100]

l_convert = [i * 10 if i % 2 == 0 else i for i in l]
print(l_convert)
# [-5, -40, -3, -20, -1, 0, 1, 20, 3, 40, 5]

l_convert2 = [i * 10 if i % 2 == 0 else i / 10 for i in l]
print(l_convert2)
# [-0.5, -40, -0.3, -20, -0.1, 0, 0.1, 20, 0.3, 40, 0.5]
Copied title and URL