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

पायथन में लाइब्रेरी सेट क्लास का उपयोग किए बिना सेट डेटा संरचना परिभाषित करने का प्रोग्राम

मान लीजिए हम निम्नलिखित विधियों के साथ एक सेट डेटा संरचना लागू करना चाहते हैं:

  • सेट का नया इंस्टेंस बनाने के लिए कंस्ट्रक्टर
  • add(val) पूर्णांक val को सेट में डालने के लिए
  • exists(val) जांचने के लिए कि val सेट में है या नहीं
  • remove(val) सेट से val को हटाने के लिए

इसलिए, यदि हम एक सेट s बनाते हैं, फिर s.add(10), s.add(20), s.add(10), s.exists(10), s.remove(10), s.exists(10), s.exists(20) कॉल करते हैं, तो आउटपुट होगा:

  • s.add(10) के लिए यह 10 डालेगा
  • s.add(20) के लिए यह 20 डालेगा
  • 10 पहले से ही s में है, तो कुछ नहीं होगा
  • s.exists(10) सत्य लौटाएगा क्योंकि 10 वहां है
  • s.remove(10) द्वारा 10 हटाएं
  • s.exists(10) असत्य लौटाएगा क्योंकि 10 हटा दिया गया है और एक तत्व केवल एक बार हो सकता है
  • s.exists(20) सत्य लौटाएगा क्योंकि 20 वहां मौजूद है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • कंस्ट्रक्टर परिभाषित करें।
  • buckets := एक खाली मैप और यह डेटा की सूची रखेगा
  • add() फ़ंक्शन परिभाषित करें। यह val लेगा:
    • यदि exists(val) गलत है, तो:
      • val को buckets[val] के अंत में डालें
  • exists() फ़ंक्शन परिभाषित करें। यह val लेगा:
    • सत्य लौटाएं जब val buckets[val] में हो, अन्यथा असत्य
  • remove() फ़ंक्शन परिभाषित करें। यह val लेगा:
    • buckets[val] हटाएं

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

from collections import defaultdict
class MySet:
    def __init__(self):
        self.buckets = defaultdict(list)
    def add(self, val):
        if not self.exists(val):
            self.buckets[val].append(val)
    def exists(self, val):
        return val in self.buckets[val]
    def remove(self, val):
        del self.buckets[val]
s = MySet()
s.add(10)
s.add(20)
s.add(10)
print(s.exists(10))
s.remove(10)
print(s.exists(10))
print(s.exists(20))

इनपुट

s = MySet() s.add(10) s.add(20) s.add(10) s.exists(10) s.remove(10) s.exists(10) s.exists(20)

आउटपुट

True False True
  1. पायथन प्रोग्राम: बिना किसी लूप के नंबर सीरीज़ प्रिंट करें पायथन प्रोग्राम: बिना किसी लूप के नंबर सीरीज़ प्रिंट करें

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

  1. पायथन प्रोग्राम: बिना किसी लूप के संख्या श्रृंखला प्रिंट करें पायथन प्रोग्राम: बिना किसी लूप के संख्या श्रृंखला प्रिंट करें

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे -समस्या कथन - दो संख्याएं N और K दी गई हैं, हमारी समस्या है कि N से K को तब तक घटाएं जब तक N शून्य (0) से बड़ा है, एक बार N ऋणात्मक या शून्य हो जाए तो हम इसमें K जोड़ना शुरू करते हैं जब तक कि वह संख्या मूल संख्या (N) न बन जाए।उदाहरण

  1. Python में एक्सप्लोरेटरी डेटा विश्लेषण Python में एक्सप्लोरेटरी डेटा विश्लेषण

    डेटा विश्लेषण के लिए, एक्सप्लोरेटरी डेटा विश्लेषण (EDA) आपका पहला कदम होना चाहिए। एक्सप्लोरेटरी डेटा विश्लेषण हमें मदद करता है - डेटा सेट में अंतर्दृष्टि देना। अंतर्निहित संरचना को समझना। महत्वपूर्ण पैरामीटर्स और उनके बीच के संबंधों को निकालना। अंतर्निहित मान्यताओं का परीक्षण करना। नमूना डेटा स