पायथन में एक सूची को एक शब्दकोश में कैसे बदलें

यदि आप उस सूची से की-वैल्यू पेयर बनाना चाहते हैं तो किसी सूची को शब्दकोश में बदलना सहायक होता है। और अगर दो सूचियां हैं, तो आप उन्हें एक शब्दकोश में भी जोड़ सकते हैं।

हालाँकि, एक शब्दकोश आपको अपने डेटा पर अधिक नियंत्रण देता है। तो आइए पाइथन में सूचियों को एक शब्दकोश में बदलने के विभिन्न तरीकों की जांच करें।

पायथन में एकल सूची को शब्दकोश में कैसे बदलें

बशर्ते कि एक सूची सममित है (समान संभावित कुंजी-मूल्य जोड़े युक्त), आप लूप के लिए इसे एक शब्दकोश में परिवर्तित कर सकते हैं।

ऐसा करने के लिए, अपने लूप को डिक्शनरी कॉम्प्रिहेंशन में रखें:

 m = ["frog", "dog", "Goat", "cat"]
d = {m[a]:m[a + 1] for a in range(0, len(m), 2)}
print(d)
Output: {'frog': 'dog', 'Goat': 'cat'}

कोड पहली बार में जटिल लग सकता है, लेकिन वास्तव में ऐसा नहीं है। आप केवल पाइथन को अपनी सूची के माध्यम से हर बार एक जोड़ी चुनने के लिए कह रहे हैं। फिर उसे प्रत्येक जोड़ी के बाईं ओर की प्रत्येक वस्तु को उसकी दाईं ओर की कुंजी बनानी चाहिए, जो कि उसका मूल्य है।

हालांकि, श्रेणी कोष्ठक के भीतर पूर्णांक ( 2 ) सुनिश्चित करता है कि आपका कोड केवल सममित सूचियों को स्वीकार करता है।

इसके कार्य को समझने के लिए, पूर्णांक को 2 से 3 में बदलें। फिर अपना कोड चलाने से पहले सूची में एक आइटम जोड़ें।

संबंधित: पायथन स्क्रिप्ट कैसे चलाएं

लूप के लिए उपयोग किए बिना इसे प्राप्त करने के लिए , आप पायथन के अंतर्निहित तानाशाही और ज़िप कार्यों का भी उपयोग कर सकते हैं:

 a = iter(m) # spin up an iterator on the list
result = dict(zip(a, a)) # Convert the iterated items into key-value pairs
print(result)
Output: {'frog': 'dog', 'Goat': 'cat'}

लूपिंग विधि के विपरीत, जिसका आपने पहले उपयोग किया था, dict(zip()) फ़ंक्शन बिना जोड़ी के किसी भी आइटम को अनदेखा करता है।

उदाहरण के लिए, यदि किसी सूची में पांच आइटम हैं, तो यह पांचवें को अनदेखा कर देता है और पहले चार आइटमों के साथ एक मिलान कुंजी-मूल्य जोड़ी बनाता है:

 m = ["first", "second", "third", "fourth", "fifth_odd"]
a = iter(m)
result = dict(zip(a, a))
print(result)
Output: {'first': 'second', 'third': 'fourth'}

एक ही लंबाई की दो सूचियों को एक शब्दकोश में कैसे बदलें

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

यह किसी एक सूची को शब्दकोश में बदलने जितना मुश्किल नहीं है। यहां बताया गया है कि इसे dict(zip()) विधि से कैसे प्राप्त किया जाए:

 list1 = ["frog", "dog", "Goat", "cat"]
list2 = [1, 3, 24, 56]
result = dict(zip(list2, list1))
print(result)
Output: {1: 'frog', 3: 'dog', 24: 'Goat', 56: 'cat'}

सम्बंधित: पायथन में लूप्स के लिए कैसे उपयोग करें

आप लूप के लिए दो सूचियों को शब्दकोश में भी बदल सकते हैं:

 list1 = ["frog", "dog", "Goat", "cat", "jog"]
list2 = [1, 3, 24, 56
result = {list2[a]:list1[a] for a in range(len(list2))}
print(result)
Output: {1: 'frog', 3: 'dog', 24: 'Goat', 56: 'cat'}

असमान लंबाई वाली सूचियों को एक शब्दकोश में कैसे बदलें

यदि आप अलग-अलग लंबाई वाली दो सूचियों के साथ काम कर रहे हैं, तो आप उन्हें एक शब्दकोश में भी बदल सकते हैं।

जब आप zip_longest मॉड्यूल का उपयोग करते हैं, तो Python अनुपलब्ध डेटा के लिए एक शून्य मान निर्दिष्ट करता है। इस मॉड्यूल का उपयोग करने के लिए, पहले इसे अपने कोड में आयात करें:

 from itertools import zip_longest
list1 = ["Cat", "Dogs", "Rats", "Fruits", "ducks"]
list2 =[1, 4, 6]
a = dict(zip_longest(list1, list2))
print(a)
Output: {'Cat': 1, 'Dogs': 4, 'Rats': 6, 'Fruits': None, 'ducks': None}

आप fillvalue कीवर्ड को शामिल करके लापता मान भर सकते हैं:

 a = dict(zip_longest(list1, list2, fillvalue="10"))
print(a)
Output: {'Cat': 1, 'Dogs': 4, 'Rats': 6, 'Fruits': '10', 'ducks': '10'}

नेस्टेड सूची को शब्दकोश में कैसे बदलें

नेस्टेड सूची कभी-कभी भ्रमित करने वाली होती है, लेकिन आप इसे एक शब्दकोश में भी बदल सकते हैं।

उदाहरण के लिए, dict फ़ंक्शन का उपयोग करके युग्मित टुपल्स की सूची को एक शब्दकोश में बदलना आसान है:

 myList = [("Learn", "MUO"), ("Python", "Google")]
myList = dict(myList)
print(myList)
Output: {'Learn': 'MUO', 'Python': 'Google'}

शब्दकोशों की सूची को एकल शब्दकोश में बदलना थोड़ा अलग है, लेकिन साथ ही साथ बहुत आसान भी है:

 list1 = [{"Cat":"Dogs"}, {"Rats":"Fruits"}]
list1 = {a:b for i in list1 for a,b in i.items()}
print(list1)
Output: {'Cat': 'Dogs', 'Rats': 'Fruits'}

डिक्शनरी एक मूल्यवान पायथन टूल है

शब्दकोश की अवधारणा को समझने से आपको मूलभूत ज्ञान मिलता है कि प्रोग्रामिंग में सरणियाँ और JSON ऑब्जेक्ट कैसे काम करते हैं। एक शब्दकोश, जब लागू किया जाता है, तो पायथन में आइटम को अधिक कॉल करने योग्य बनाता है। संक्षेप में, यह आपको किसी भी वस्तु को उसकी कुंजी से कॉल करने देता है। तो आप इसके मिलान मूल्य तक पहुँच सकते हैं।

उस ने कहा, एक सूची को पायथन में एक शब्दकोश में परिवर्तित करना कई वास्तविक जीवन के मामलों में सहायक होता है। अंततः, एक शब्दकोश वेब अनुरोधों पर गति भी प्रदान करता है। एक उदाहरण यह है कि जब आप डेटाबेस से अलग-अलग सूचियों के रूप में दो कॉलम प्राप्त करते हैं और उन्हें अधिक चलने योग्य, सुलभ और हेरफेर करने में आसान बनाने के लिए उन्हें एक शब्दकोश या एक सरणी में परिवर्तित करते हैं।