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

पायथन में उन टुपल्स को सूची से हटाएं जिनके सभी तत्व None हैं


जब टुपल्स की सूची से उन टुपल्स को हटाने की आवश्यकता होती है जहां 'None' तत्व मौजूद है, तो सूची समझ का उपयोग किया जा सकता है।

उदाहरण

my_list = [(2, None, 12), (None, None, None), (23, 64), (121, 13), (None,), (None, 45, 6)]
print("सूची है: ")
print(my_list)
my_result = [sub for sub in my_list if not all(elem == None for elem in sub)]
print("None टुपल्स हटा दिए गए हैं, परिणाम है: ")
print(my_result)

आउटपुट

सूची है: [(2, None, 12), (None, None, None), (23, 64), (121, 13), (None,), (None, 45, 6)]
None टुपल्स हटा दिए गए हैं, परिणाम है: [(2, None, 12), (23, 64), (121, 13), (None, 45, 6)]

व्याख्या

  • टुपल्स की एक सूची परिभाषित की जाती है, और कंसोल पर प्रदर्शित की जाती है।

  • सूची पर पुनरावृत्ति करने के लिए सूची समझ का उपयोग किया जाता है।

  • 'all' कंडीशन का उपयोग यह देखने के लिए किया जाता है कि क्या 'None' तत्व हैं।

  • जब 'None' तत्व मौजूद होते हैं, तो उन्हें फ़िल्टर आउट कर दिया जाता है।

  • शेष डेटा एक वेरिएबल को असाइन किया जाता है।

  • यह वेरिएबल आउटपुट के रूप में प्रदर्शित किया जाता है।

कोड विश्लेषण

[sub for sub in my_list if not all(elem == None for elem in sub)]
  • all(elem == None for elem in sub) - True यदि टुपल के सभी तत्व None हैं

  • not all(...) - True यदि कम से कम एक तत्व None नहीं है

  • परिणाम: केवल वही टुपल्स रखे जाते हैं जिनमें कम से कम एक गैर-None मान हो

बेहतर तुलना: 'is' vs '=='

# अनुशंसित: 'is' का उपयोग करें None तुलना के लिए
[sub for sub in my_list if not all(elem is None for elem in sub)]

is पहचान की जांच करता है (तेज़, सही), == समानता की जांच करता है।

विविधताएं

केवल वे टुपल्स रखें जिनमें कोई None न हो (सभी गैर-None)

[sub for sub in my_list if all(elem is not None for elem in sub)]

पहले/अंतिम तत्व के आधार पर फ़िल्टर करें

# पहला तत्व None नहीं है
[sub for sub in my_list if sub and sub[0] is not None]

# अंतिम तत्व None नहीं है
[sub for sub in my_list if sub and sub[-1] is not None]

None की संख्या गिनें

[(sub, sum(1 for x in sub if x is None)) for sub in my_list]

फिल्टर() फ़ंक्शन का उपयोग करके

list(filter(lambda t: not all(x is None for x in t), my_list))

  1. - सूची से हर तीसरे तत्व को हटाकर प्रिंट करने का पायथन प्रोग्राम (जब तक सूची खाली न हो जाए)

    समस्या विवरण सबसे पहले हम एक सूची बनाते हैं, शुरुआती पता का इंडेक्स 0 है और पहले तीसरे तत्व की स्थिति 2 है और सूची खाली होने तक पार करना है और हर बार हमें अगले तीसरे तत्व का इंडेक्स ढूंढना है और मान प्रिंट करना है और उसके बाद सूची की लंबाई कम करना है। उदाहरण A: [10,20,30,40] आउटपुट: 30 20 40 10 व

  1. - पायथन में सूची से समान तत्व कैसे हटाएं

    समस्या विवरण बस रिटर्न स्टेटमेंट को फॉर ब्लॉक के बाहर रखें। यह काम करेगा। साथ ही अंतिम प्रिंट स्टेटमेंट में remove_same के बजाय remaove_new होना चाहिए। सही कोड def remove_same(L1, L2): L1_copy = L1[:] for e in L1_copy: if e in L2: L1.remove(e) return L1 L1 = [1,2,3,

  1. - Python में इंडेक्स द्वारा लिस्ट से एलिमेंट कैसे हटाएं?

    इंडेक्स द्वारा लिस्ट से एलिमेंट हटाने के दो विकल्प हैं। del स्टेटमेंट का उपयोग करके, और pop() मेथड का उपयोग करके। del स्टेटमेंट को हटाए जाने वाले एलिमेंट के इंडेक्स की आवश्यकता होती है। >>> L1=[11,22,33,44,55,66,77] >>> del L1[2] >>> L1 [11, 22, 44, 55, 66, 77] बिल्ट-इन लि