📘 CodingMarble Learn

पायथन में डिक्शनरी: कुंजी-मान जोड़े और मेथड

डिक्शनरी घुँघराले कोष्ठक में कुंजी: मान जोड़ों का परिवर्तनशील संग्रह है, जैसे {"Ravi": 85}। कुंजियाँ अद्वितीय और अपरिवर्तनशील होती हैं; मान कुछ भी हो सकता है। d[key] = value से जोड़ा जोड़ते या बदलते हैं, d[key] या d.get(key) से पढ़ते हैं, for k in d से ट्रैवर्स करते हैं, और keys(), values(), items(), update(), pop(), popitem(), clear() जैसे मेथड इस्तेमाल करते हैं।

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

  1. डिक्शनरी कुंजी: मान जोड़े रखती है, जैसे लॉकर पर नाम। कुंजियाँ अद्वितीय हैं।
  2. {} से शुरू करें और d[key] = value से जोड़े डालें।
  3. कुंजी से मान पढ़ें; get() न मिलने वाली कुंजी पर त्रुटि से बचाता है।
  4. for लूप से कुंजियाँ, मान या जोड़े ट्रैवर्स करें।
  5. पुरानी कुंजी पर मान बदलता है; del, pop और clear जोड़े हटाते हैं।
  6. आपकी बारी: शब्द लिखें और अक्षर-गिनती की डिक्शनरी बनाएँ।

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

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

list कुंजी क्यों नहीं बन सकती?

कुंजी कभी बदलनी नहीं चाहिए ताकि पायथन उसे जल्दी ढूँढ सके। list परिवर्तनशील है, इसलिए मना है। tuple चलेगा।

पहले से मौजूद कुंजी दोबारा डालूँ तो क्या होगा?

नया लॉकर नहीं बनता। मौजूदा लॉकर के अंदर का मान बदल जाता है।

d[key] की जगह get() कब लगाएँ?

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

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

पायथन 3.7 से यह डालने का क्रम याद रखती है, इसलिए लूप उसी क्रम में चलते हैं। पर पहुँच फिर भी कुंजी से होती है, इंडेक्स से नहीं।

ख़ाली डिक्शनरी कैसे शुरू करें?

d = {} या d = dict()। ध्यान दें कि {} डिक्शनरी है, set नहीं।

डिक्शनरी क्या है? कुंजी-मान जोड़े

डिक्शनरी (dict) डेटा को { } में कुंजी: मान जोड़ों के रूप में रखती है।

marks = {"Ravi": 85, "Asha": 92}

डिक्शनरी बनाना

d = {}                          # ख़ाली
d = dict()                      # ख़ाली
d = {"roll": 5, "name": "Ira"}
d = dict(roll=5, name="Ira")
d = dict([("roll", 5), ("name", "Ira")])

d = {}
for i in range(3):              # इनपुट से
    n = input("नाम: ")
    d[n] = int(input("अंक: "))

पढ़ना और ट्रैवर्स करना

d[key] मान देता है; न मिलने वाली कुंजी पर KeyError। d.get(key, default) त्रुटि की जगह default (या None) देता है।

key in d जाँचता है कि कुंजी है या नहीं (यह कुंजियाँ जाँचता है, मान नहीं)।

for k in d:                  # कुंजियाँ
    print(k, d[k])
for k, v in d.items():       # जोड़े
    print(k, v)

अपडेट और डिलीट

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

करके देखें: अक्षर गिनो

यह प्रोग्राम लिखें और अपने नाम से चलाएँ:

word = input("शब्द: ")
d = {}
for ch in word:
    d[ch] = d.get(ch, 0) + 1
print(d)

पहले "banana" का आउटपुट अनुमान लगाएँ। फिर 3D का कदम 6 खोलें, वही शब्द लिखें और हर लॉकर भरते देखें।

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

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

1. d = {"a": 1, "b": 2}। d["c"] = 3 और d["a"] = 10 के बाद d क्या होगी?

"c" नई → जुड़ी। "a" पुरानी → बदली। d = {"a": 10, "b": 2, "c": 3}।

2. d = {"pen": 10, "book": 50}। d.get("bag") और d.get("bag", 0) क्या लौटाएँगे?

None और 0। दोनों त्रुटि नहीं देते, जबकि d["bag"] KeyError देता।

3. {"Mon": 30, "Tue": 45, "Wed": 25} के मानों का योग निकालें।

sum(d.values()) = 30 + 45 + 25 = 100।

4. marks = {"Ravi": 85, "Asha": 92, "Mohan": 78} से टॉपर का नाम छापने का प्रोग्राम लिखें।

top = "" best = -1 for k, v in marks.items(): if v > best: best, top = v, k print(top) → Asha

5. "banana" में हर अक्षर गिनें।

हर अक्षर के लिए d[ch] = d.get(ch, 0) + 1: {"b": 1, "a": 3, "n": 2}।

6. d = {1: "x", 2: "y", 3: "z"}। d.pop(2) और d.popitem() के बाद d?

pop(2) से 2: "y" हटा → {1: "x", 3: "z"}। popitem() आख़िरी जोड़ा (3, "z") हटाता है → {1: "x"}।

आम गलतियाँ

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

1. कौन-से कोष्ठक डिक्शनरी बनाते हैं?
2. d = {"a": 1}; d["a"] = 5। अब d है:
3. कौन-सा मेथड सारे कुंजी-मान जोड़े लौटाता है?
4. न मिलने वाली कुंजी "x" के लिए d["x"] देता है:
5. कौन कुंजी नहीं बन सकता?

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

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

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

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

घुँघराले कोष्ठक में अद्वितीय कुंजी: मान जोड़ों का परिवर्तनशील संग्रह, जिसे कुंजी से पढ़ते हैं।

pop() और popitem() में क्या अंतर है?

pop(key) उस कुंजी का जोड़ा हटाकर मान लौटाता है; popitem() आख़िरी डाला जोड़ा हटाकर लौटाता है।

डिक्शनरी ट्रैवर्स कैसे करें?

for k in d: print(k, d[k]) या for k, v in d.items(): print(k, v)।

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

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

पहले यह पढ़ें

आगे पढ़ें

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

सभी सूचना विज्ञान अभ्यास पाठ