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

पायथन - सूचियों की सूची को ट्री-जैसी तानाशाही में बदलें

एक नेस्टेड सूची को देखते हुए हम इसे एक ऐसे शब्दकोश में बदलना चाहते हैं जिसके तत्वों को ट्री डेटा संरचना के हिस्से के रूप में माना जा सकता है। इस लेख में हम एक नेस्टेड सूची को डिक्शनरी जोड़ने के लिए दो तरीकों को देखेंगे जिनके तत्व डेटा संरचना जैसे पेड़ का प्रतिनिधित्व करते हैं।

स्लाइसिंग का उपयोग करना

हम सूची में आइटम को स्लाइस करके उलट देते हैं और फिर जांचते हैं कि आइटम सूची में मौजूद है या नहीं। यदि यह मौजूद नहीं है तो हम इसे अनदेखा कर देते हैं अन्यथा हम इसे पेड़ में जोड़ देते हैं।

उदाहरण

def CreateTree(lst):
   new_tree = {}
   for list_item in lst:
      currTree = new_tree

      for key in list_item[::-1]:
         if key not in currTree:
            currTree[key] = {}
         currTree = currTree[key]
      return new_tree
# Given list
listA = [['X'], ['Y', 'X'], ['Z', 'X'], ['P', 'Z', 'X']]
print(CreateTree(listA))

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

आउटपुट

{'X': {'Y': {}, 'Z': {'P': {}}}}

कम करें और getitem का उपयोग करें

फ़ंक्शन को कम करने और getitem प्राप्त करने के लिए हम functools और ऑपरेटर मॉड्यूल का उपयोग करते हैं। इन फ़ंक्शंस का उपयोग करके हम सूची से आइटम प्राप्त करने के लिए दो फ़ंक्शन परिभाषित करते हैं और आइटम को ट्री स्ट्रक्चर में सेट करते हैं। यहां भी हम सूची के तत्वों को उलटने के लिए स्लाइसिंग दृष्टिकोण का उपयोग करते हैं और फिर दो बनाए गए कार्यों को उन शब्दकोशों को बनाने के लिए लागू करते हैं जिनके तत्व वृक्ष संरचना में हैं।

उदाहरण

from functools import reduce
from operator import getitem

def getTree(tree, mappings):
   return reduce(getitem, mappings, tree)

def setTree(tree, mappings):
   getTree(tree, mappings[:-1])[mappings[-1]] = dict()

# Given list
lst = [['X'], ['Y', 'X'], ['Z', 'X'], ['P', 'Z', 'X']]
tree = {}
for i in lst:
   setTree(tree, i[::-1])
print(tree)

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

आउटपुट

{'X': {'Y': {}, 'Z': {'P': {}}}}

  1. पायथन - एक सेट को शब्दकोश में बदलें

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

  1. वर्णों की सूची को एक स्ट्रिंग में बदलने के लिए पायथन प्रोग्राम

    पायथन को इस प्रकार के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण क्रमांकन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा - ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd&

  1. पायथन में एक सूची को टुपल में कैसे परिवर्तित करें?

    आप टपल फ़ंक्शन को पास करके किसी सूची को टपल में बदल सकते हैं। उदाहरण my_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple) आउटपुट यह आउटपुट देगा - (1, 2, 3)