Depset

किसी समस्या की शिकायत करें सोर्स देखें रात · 7.4 को अपनाएं. 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" के क्रम में लगाए गए डेपसेट और उन चाइल्ड डेपसेट के एलिमेंट के लिए भी क्रम तय नहीं किया जाता जिनका क्रम, पैरंट डेपसेट से अलग होता है. यह सूची, डिपेंडेंसी सेट की कॉपी होती है. इसमें बदलाव करने से, डिपेंडेंसी सेट पर कोई असर नहीं पड़ता. इसके अलावा, डिपेंडेंसी सेट में बदलाव करने से, इस सूची पर भी कोई असर नहीं पड़ता.