BazelCon 2022, 16 नवंबर से 17 नवंबर तक न्यूयॉर्क में और ऑनलाइन उपलब्ध है.
आज ही रजिस्टर करें!

Depset

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

ब्यौरे की संख्या नहीं बदली जा सकती. उन्हें अपने कंस्ट्रक्टर फ़ंक्शन का इस्तेमाल करके बनाया जाना चाहिए और transitive तर्क के ज़रिए दूसरे डीपेट के साथ मर्ज या ऑगमेंटेड किया जाना चाहिए.

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

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

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

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

सदस्य

To_list

list depset.to_list()

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