📘 CodingMarble Learn

Python में डिक्शनरी

डिक्शनरी key: value जोड़ों का म्यूटेबल संग्रह है जो धनु कोष्ठक में लिखा जाता है: D = {'Riya': 91, 'Aman': 85}। मान key से मिलता है (D['Riya']), स्थान से नहीं; न मिलने वाली key पर KeyError। key अनोखी और इम्यूटेबल (संख्या, स्ट्रिंग, टपल) होनी चाहिए; value कुछ भी हो सकती है। D[key] = value नया जोड़ा जोड़ता है या पुराना मान बदलता है। ट्रैवर्सल for key in D से। उपयोगी फ़ंक्शन और मेथड: len(), dict(), keys(), values(), items(), get(), update(), del, clear(), fromkeys(), copy(), pop(), popitem(), setdefault(), max(), min(), sorted()। एक प्रसिद्ध प्रोग्राम स्ट्रिंग में हर अक्षर कितनी बार आया, गिनता है।

🎬 कदम-दर-कदम कहानी

  1. डिक्शनरी जोड़े रखती है: एक key और उसका मान। मान key से ढूँढते हैं, जैसे शब्दकोश में शब्द।
  2. key नई हो तो D[key] = value नया जोड़ा जोड़ता है। key पहले से हो तो मान बदल जाता है।
  3. for लूप एक-एक key पर जाता है। D[k] हर key का मान देता है।
  4. keys(), values(), items() और get() जैसे मेथड डिक्शनरी पढ़ने में मदद करते हैं।
  5. अक्षर गिनने के लिए शब्द पर चलो। हर अक्षर की गिनती में 1 जोड़ो।
  6. आपकी बारी: कोई शब्द लिखिए और अक्षरों की गिनती बढ़ते देखिए।

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

स्थान की जगह key क्यों?

क्योंकि हमें नाम याद रहते हैं, स्थान नहीं। D['Aman'] L[1] से साफ़ है, और बड़ी डिक्शनरी में भी खोज तेज़ रहती है।

एक ही key दो बार जोड़ूँ तो?

हर key का एक ही लॉकर, इसलिए दूसरा मान पहले को बदल देता है। Riya का 91 से 95 होना देखें।

क्या for k in D मान देता है?

नहीं, key देता है। D[k] लें या D.items() पर लूप चलाएँ।

D[k] की जगह get() कब?

जब key के न होने की संभावना हो। get() रुकने की जगह None या आपका default देता है।

1 जोड़ने से पहले ch in d क्यों जाँचते हैं?

अक्षर पहली बार आए तो उसकी गिनती नहीं होती, इसलिए 1 रखते हैं; बाद में 1 जोड़ते हैं। get(ch, 0) + 1 दोनों करता है।

डिक्शनरी बनाना और key से पढ़ना

D = {'Riya': 91, 'Aman': 85, 'Dev': 78}, E = {}, dict(a=1, b=2)।

पढ़ना: D['Aman'] → 85। जो key न हो उस पर KeyError। D.get('Zoya') त्रुटि की जगह None देता है, और D.get('Zoya', 0) 0 देता है।

key अनोखी और इम्यूटेबल (int, str, tuple) हो; लिस्ट key नहीं बन सकती। 'Riya' in D key जाँचता है, value नहीं।

जोड़ना और बदलना

D['Zoya'] = 88     # नई key → जोड़ा जुड़ा
D['Riya'] = 95     # पुरानी key → मान बदला
del D['Dev']       # जोड़ा हटाओ
D.update({'Aman': 90, 'Ira': 70})

डिक्शनरी म्यूटेबल है, और Python 3.7 से key जोड़ने का क्रम याद रखती है।

डिक्शनरी का ट्रैवर्सल

for k in D:
    print(k, D[k])

for k, v in D.items():
    print(k, '→', v)

डिक्शनरी फ़ंक्शन और मेथड

मेथडकाम
len(D)जोड़ों की संख्या
D.keys(), D.values(), D.items()सारी key / value / (key, value) जोड़े
D.get(k, default)k का मान, या default (त्रुटि नहीं)
D.update(D2)D2 से जोड़े जोड़ता या बदलता है
D.pop(k)k हटाकर उसका मान लौटाता है
D.popitem()आख़िरी जोड़ा हटाकर लौटाता है
D.setdefault(k, v)D[k] देता है; k न हो तो v के साथ जोड़ता है
dict.fromkeys(keys, v)दी गई key सब v मान के साथ
D.copy(), D.clear()कॉपी / सब जोड़े हटाना
sorted(D), max(D), min(D)key पर काम करते हैं

प्रोग्राम: स्ट्रिंग में हर अक्षर गिनना

s = input('टेक्स्ट लिखें: ')
d = {}
for ch in s:
    if ch in d:
        d[ch] += 1
    else:
        d[ch] = 1
print(d)
# 'banana' → {'b': 1, 'a': 3, 'n': 2}

छोटा रूप: d[ch] = d.get(ch, 0) + 1। यही तरीका शब्द गिनने में: s.split() पर लूप।

प्रोग्राम: छात्र अंक डिक्शनरी

n = int(input('कितने छात्र? '))
marks = {}
for i in range(n):
    name = input('नाम: ')
    marks[name] = int(input('अंक: '))
for name, m in marks.items():
    if m > 75:
        print(name)

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

1. D = {'a': 1, 'b': 2}। D['b'], len(D), 'a' in D, 1 in D?

2; 2; True; False (in key जाँचता है, 1 value है)।

2. आउटपुट? D = {'x': 5}; D['y'] = 7; D['x'] = 9; print(D)

{'x': 9, 'y': 7}

3. आउटपुट? D = {'Riya': 91, 'Aman': 85}; print(D.get('Dev', 'absent'), D.pop('Aman'), D)

absent 85 {'Riya': 91}

4. 'hello' के अक्षर गिनें।

{'h': 1, 'e': 1, 'l': 2, 'o': 1}

5. 'to be or not to be' के शब्द गिनें।

d = {} for w in 'to be or not to be'.split(): d[w] = d.get(w, 0) + 1 # {'to': 2, 'be': 2, 'or': 1, 'not': 1}

6. {'Riya': 91, 'Aman': 85, 'Dev': 97} में सबसे ज़्यादा अंक वाला छात्र?

best = max(D, key=D.get) → 'Dev'। या लूप से सबसे बड़े मान वाला नाम रखें।

आम गलतियाँ

अभ्यास क्विज़

1. डिक्शनरी किसमें लिखी जाती है?
2. D = {'a': 1}; D['b'] देगा:
3. (key, value) जोड़े कौन-सा मेथड देता है?
4. कौन-सा key बन सकता है?
5. 'x' पहले से हो तो D['x'] = 5:

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

Python में डिक्शनरी क्या है?

धनु कोष्ठक में अनोखे key: value जोड़ों का म्यूटेबल संग्रह, जहाँ हर मान उसकी key से मिलता है।

डिक्शनरी से अक्षर कैसे गिनें?

स्ट्रिंग पर लूप चलाकर हर अक्षर के लिए d[ch] = d.get(ch, 0) + 1 करें।

लिस्ट और डिक्शनरी में क्या अंतर है?

लिस्ट पूर्णांक इंडेक्स से पढ़ा जाने वाला अनुक्रम है; डिक्शनरी अनोखी key को मानों से जोड़ती है और key से पढ़ी जाती है।

यह कहाँ पढ़ाया जाता है

सीबीएसई (भारत)कक्षा 11संगणनात्मक चिंतन और प्रोग्रामिंग - 1
सीबीएसई (भारत)कक्षा 11पायथन का परिचय

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी कंप्यूटर विज्ञान पाठ