Depset

समस्या की शिकायत करें सोर्स देखें ठीक 24/}20} 7.3 · 7.2 · 7.1 · 7.0 · 6.5

एक खास डेटा स्ट्रक्चर, जो मर्ज करने के बेहतर तरीके के साथ काम करता है. साथ ही, इसमें ट्रैवल करने का क्रम तय होता है. आम तौर पर, इसका इस्तेमाल नियमों और आसपेक्ट में ट्रांज़िशन डेपेंडेंसी से डेटा इकट्ठा करने के लिए किया जाता है. ज़्यादा जानकारी के लिए यहां देखें.

डिप्सेट के एलिमेंट हैश किए जा सकने वाले होने चाहिए और उनका टाइप (जैसा कि बिल्ट-इन टाइप(x) फ़ंक्शन में बताया गया है) एक जैसा होना चाहिए. हालांकि, डेपसेट सिर्फ़ हैश सेट नहीं हैं और वे पैसे चुकाकर ली जाने वाली सदस्यता की तेज़ी से जांच करने की सुविधा भी नहीं देते. अगर आपको किसी सामान्य सेट डेटा टाइप की ज़रूरत है, तो डिक्शनरी का इस्तेमाल करके किसी डेटा टाइप को सिम्युलेट किया जा सकता है. यहां सभी बटन True से मैप होते हैं.

डिप्सेट में बदलाव नहीं किया जा सकता. इन्हें उनके कंस्ट्रक्टर फ़ंक्शन का इस्तेमाल करके बनाया जाना चाहिए. साथ ही, transitive आर्ग्युमेंट की मदद से, अन्य डिप्सेट के साथ मर्ज या जोड़ा जाना चाहिए.

order पैरामीटर से यह तय होता है कि depset को iterable में बदलने के लिए, किस तरह का ट्रैवर्सल किया जाता है. इसके चार संभावित मान हो सकते हैं:

  • "default" (पहले "stable" था): ऑर्डर की जानकारी नहीं दी गई है, लेकिन यह तय किया गया है कि ऑर्डर के मुताबिक ऑर्डर किया जा सकता है.
  • "postorder" (पहले "compile"): पोस्ट को बाएं से दाएं क्रम में लगाने की सुविधा. यह बार-बार, सबसे बाईं ओर मौजूद सभी चाइल्ड एलिमेंट को पहले और फिर सबसे बाईं ओर मौजूद डायरेक्ट एलिमेंट को पहले ट्रैवर्स करता है.
  • "preorder" (पहले "naive_link"): बाईं से दाईं ओर प्री-ऑर्डर करने की सुविधा. यह सबसे पहले बाएं से दाएं, डायरेक्ट एलिमेंट को ट्रैवर्स करता है. इसके बाद, बाएं से दाएं, चाइल्ड एलिमेंट को बार-बार ट्रैवर्स करता है.
  • "topological" (पहले इसे "link" कहा जाता था): रूट से लेकर लीफ तक की टोपोलॉजिकल ऑर्डरिंग. इस बात की कोई गारंटी नहीं है कि क्रम बाएं से दाएं होगा.

दो डेपसेट को सिर्फ़ तब मर्ज किया जा सकता है, जब दोनों डेपसेट का क्रम एक ही हो या उनमें से किसी एक का क्रम "default" हो. बाद के मामले में, नतीजे वाले डिप्सेट का क्रम दूसरे ऑर्डर के जैसा ही होगा.

डेपसेट में डुप्लीकेट वैल्यू हो सकती हैं, लेकिन to_list() का इस्तेमाल करके, इन पर बार-बार जाने पर इन्हें छिपा दिया जाएगा. डुप्लीकेट वैल्यू, ऑर्डरिंग सेमेंटेक्स में रुकावट डाल सकती हैं.

सदस्य

to_list

list depset.to_list()

यह फ़ंक्शन, डुप्लीकेट के बिना एलिमेंट की सूची दिखाता है. यह सूची, डिपेंडेंसी सेट के ट्रैवल ऑर्डर में होती है. ध्यान दें कि डिप्सेट में एक से ज़्यादा बार जोड़े गए एलिमेंट के लिए, क्रम तय नहीं किया जाता है. हालांकि, यह तय होता है कि कौनसा एलिमेंट पहले दिखेगा. "default" के क्रम में लगाए गए डेपसेट और उन चाइल्ड डेपसेट के एलिमेंट के लिए भी क्रम तय नहीं किया जाता जिनका क्रम, पैरंट डेपसेट से अलग होता है. यह सूची, डिपेंडेंसी सेट की कॉपी होती है. इसमें बदलाव करने से, डिपेंडेंसी सेट पर कोई असर नहीं पड़ता. इसके अलावा, डिपेंडेंसी सेट में बदलाव करने से, इस सूची पर भी कोई असर नहीं पड़ता.