"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं कैसे जांचूं कि पाइथॉन में एक सूची के तत्व दूसरी सूची के साथ ओवरलैप होते हैं?

मैं कैसे जांचूं कि पाइथॉन में एक सूची के तत्व दूसरी सूची के साथ ओवरलैप होते हैं?

2024-11-08 को प्रकाशित
ब्राउज़ करें:532

How Do I Check if Elements from One List Overlap with Another in Python?

पायथन में सूची ओवरलैप का परीक्षण

परिचय

पायथन में, विभिन्न डेटा हेरफेर कार्यों के लिए यह निर्धारित करना आवश्यक है कि एक सूची के तत्व दूसरी सूची में मौजूद हैं या नहीं। यह आलेख इस ओवरलैप का परीक्षण करने, उनकी दक्षता का मूल्यांकन करने और सर्वोत्तम अभ्यास प्रदान करने के लिए विभिन्न तरीकों की खोज करता है।

दृष्टिकोण

1. जेनरेटर एक्सप्रेशन

any(i in a for i in b)

यह विधि एक सूची के माध्यम से पुनरावृत्त होती है और दूसरे में सदस्यता की जांच करती है, यदि मिलान होता है तो True लौटता है मिला। इसकी समय जटिलता O(n) है, जहां n बड़ी सूची की लंबाई है।

2। सेट इंटरसेक्शन

bool(set(a) & set(b))

यह दृष्टिकोण दोनों सूचियों को सेट में परिवर्तित करता है और उनका इंटरसेक्शन ढूंढता है। यदि चौराहा गैर-रिक्त है, तो यह सत्य लौटाता है। इसके लिए सबसे खराब स्थिति वाली समय जटिलता O(n m) है, जहां n और m सूचियों की लंबाई हैं।

3. हाइब्रिड सेट इंटरसेक्शन

a = set(a)
any(i in a for i in b)

यह विधि केवल एक सूची को एक सेट में परिवर्तित करती है और दूसरे के माध्यम से पुनरावृत्त करती है, सेट सदस्यता की जांच करती है। यह मध्यस्थ सेटों के निर्माण से बचाता है, जिससे यह पारंपरिक सेट इंटरसेक्शन की तुलना में तेज़ हो जाता है।

4. Isdisjoint विधि

not set(a).isdisjoint(b)

यह दृष्टिकोण यह निर्धारित करने के लिए जमे हुए सेट की isdisjoint विधि का उपयोग करता है कि क्या उनमें कोई सामान्य तत्व हैं। यदि वे ऐसा नहीं करते हैं, तो परिणाम गलत है; अन्यथा, यह सच है। ]सेट चौराहा: O(n m)

हाइब्रिड सेट चौराहा: O(n m)

Isdisjoint विधि: O(1)

ज्यादातर मामलों में, isdisjoint विधि सबसे तेज़ है क्योंकि यह निरंतर-समय निर्धारित सदस्यता जांच से लाभान्वित होती है।
  • जेनरेटर अभिव्यक्ति के लिए सर्वश्रेष्ठ मामला:
  • जब सूचियों के पहले कुछ तत्व ओवरलैप होते हैं। इस मामले में, जेनरेटर एक्सप्रेशन शीघ्रता से True लौट सकता है।

विचार करने योग्य कारक:

सूची आकार

    का वितरण सूचियों के भीतर तत्व
  • साझा तत्वों की आवृत्ति

सर्वश्रेष्ठ अभ्यास

    छोटी सूचियों (यदि सूची संरचनाएं पूर्वानुमानित हैं (उदाहरण के लिए, क्रमबद्ध), तो जनरेटर अभिव्यक्ति तेज़ हो सकती है।
  • जब सूचियों के बीच महत्वपूर्ण आकार का अंतर होता है, तो पहले तर्क के रूप में छोटी सूची के साथ isdisjoint विधि का उपयोग करें।
  • के लिए कुछ या कोई साझा तत्वों वाली सूचियों में, isdisjoint विधि आम तौर पर अधिक कुशल होती है।

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: 1729382599 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3