defaultdict
डिक्शनरी मानों को स्वतः प्रारंभ करें
defaultdict, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
अनुपस्थित कुंजी की समस्या
सामान्य dict में ऐसी कुंजी प्राप्त करने पर जो मौजूद नहीं है, KeyError उत्पन्न होता है। जब आप मानों को धीरे-धीरे बनाना चाहते हैं, तब यह परेशानी पैदा करता है।
d = {}
try:
d['x'].append(1)
except KeyError as e:
print('KeyError:', e)डिफ़ॉल्टडिक्ट का परिचय
collections का defaultdict एक फ़ैक्टरी फ़ंक्शन लेता है, जो हर अनुपस्थित कुंजी के लिए डिफ़ॉल्ट मान बनाता है। इसे from collections import defaultdict से आयात करें।
from collections import defaultdict
d = defaultdict(int)
print(d['missing'])
print(dict(d))int से गिनती
defaultdict(int) में अनुपस्थित कुंजियों का डिफ़ॉल्ट मान 0 होता है, इसलिए आप पहले जाँच किए बिना गिनती बढ़ा सकते हैं।
from collections import defaultdict
counts = defaultdict(int)
for ch in 'banana':
counts[ch] += 1
print(dict(counts))सूची से समूह बनाना
defaultdict(list) नई कुंजियों के लिए एक खाली सूची बनाता है, इसलिए यह तत्वों को अलग-अलग समूहों में रखने के लिए उपयुक्त है।
from collections import defaultdict
groups = defaultdict(list)
words = ['apple', 'ant', 'bee', 'bear']
for w in words:
groups[w[0]].append(w)
print(dict(groups))सेट से संग्रह करना
जब आपको हर कुंजी के लिए अद्वितीय मान चाहिए हों, तब defaultdict(set) का उपयोग करें। डुप्लिकेट अपने-आप हटा दिए जाते हैं।
from collections import defaultdict
seen = defaultdict(set)
pairs = [('a', 1), ('a', 1), ('a', 2), ('b', 3)]
for k, v in pairs:
seen[k].add(v)
print(dict(seen))फ़ैक्टरी कॉल करने योग्य होनी चाहिए
आर्ग्युमेंट ऐसा कॉल करने योग्य फ़ंक्शन होता है जो कोई आर्ग्युमेंट नहीं लेता और डिफ़ॉल्ट मान लौटाता है। int, list, set और dict सभी काम करते हैं, क्योंकि इन्हें कॉल करने पर खाली मान मिलता है।
from collections import defaultdict
print(int())
print(list())
print(set())लैम्ब्डा से मनचाहा डिफ़ॉल्ट
आप कोई भी ऐसा कॉल करने योग्य फ़ंक्शन दे सकते हैं जो कोई आर्ग्युमेंट न ले, जैसे lambda, और उससे मनचाहा डिफ़ॉल्ट मान लौटवा सकते हैं।
from collections import defaultdict
scores = defaultdict(lambda: 100)
print(scores['new_player'])
scores['alice'] -= 10
print(dict(scores))नेस्टेड डिफ़ॉल्टडिक्ट
फ़ैक्टरी स्वयं एक defaultdict बना सकती है, जिससे आप हाथ से तैयारी किए बिना नेस्टेड संरचनाएँ बना सकते हैं।
from collections import defaultdict
table = defaultdict(lambda: defaultdict(int))
table['fruit']['apples'] += 3
table['fruit']['pears'] += 2
print(table['fruit']['apples'])
print(table['fruit']['pears'])पहुंचने से कुंजी बनती है
ध्यान रखें: अनुपस्थित कुंजी को केवल पढ़ने से ही वह डिफ़ॉल्ट मान के साथ जोड़ दी जाती है। उसे पढ़ने के बाद कुंजी डिक्शनरी में मौजूद होती है।
from collections import defaultdict
d = defaultdict(int)
_ = d['ghost']
print('ghost' in d)
print(dict(d))डाले बिना जाँच करना
कुंजी बनाए बिना उसकी जाँच करने के लिए .get() विधि या in ऑपरेटर का उपयोग करें; ये फ़ैक्टरी को कभी सक्रिय नहीं करते।
from collections import defaultdict
d = defaultdict(int)
print(d.get('safe', 'default'))
print('safe' in d)
print(dict(d))फिर से डिक्शनरी में बदलना
जब आपको साधारण डिक्शनरी चाहिए हो, तब defaultdict को dict() में रखें, जैसे किसी फ़ंक्शन से लौटाने या साफ़-सुथरे ढंग से छापने से पहले।
from collections import defaultdict
dd = defaultdict(list)
dd['a'].append(1)
plain = dict(dd)
print(type(plain))
print(plain)त्वरित जाँच
defaultdict को दिया गया आर्ग्युमेंट क्या दर्शाता है?
पुनरावलोकन: डिफ़ॉल्टडिक्ट
मुख्य बातें:
defaultdict(factory)अनुपस्थित कुंजियों के लिए मान अपने-आप बनाता है।int0 देता है (गिनती के लिए),list[] देता है (समूह बनाने के लिए), औरsetखाली सेट देता है (अद्वितीय समूह बनाने के लिए)।- फ़ैक्टरी कोई भी ऐसा कॉल करने योग्य फ़ंक्शन हो सकती है जो कोई आर्ग्युमेंट न ले, जिसमें
lambdaभी शामिल है। - अनुपस्थित कुंजी को पढ़ने से वह जुड़ जाती है; सुरक्षित रूप से जाँचने के लिए
.get()याinका उपयोग करें।
from collections import defaultdict
g = defaultdict(list)
for w in ['cat', 'cow', 'dog']:
g[w[0]].append(w)
print(dict(g))एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “defaultdict” पाठ निःशुल्क है?
हाँ—“defaultdict” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“defaultdict” में मैं क्या सीखूँगा?
डिक्शनरी मानों को स्वतः प्रारंभ करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“defaultdict” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Counter
- defaultdict
- deque
- namedtuple और OrderedDict