कोडिंग साक्षात्कार की तैयारी · पाठ

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

dict और set बनाना, सदस्यता जाँचना तथा collections.Counter से आवृत्तियाँ गिनने जैसे सामान्य तरीकों को समझिए।

पाठ 2, कुल 4 में से13 चरण

Python में डिक्शनरी और सेट, CoddyKit पर कोडिंग साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह कोडिंग साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Python डिक्शनरी: कुंजी-मान संग्रह

Python की डिक्शनरी कुंजियों को मानों से जोड़ती है और औसतन O(1) समय में खोज, insert और delete करती है। यही two-sum, anagram जाँच और आवृत्ति गिनने के पीछे का आधार है। कोड इसे दिखाता है।

d = {'apple': 3, 'banana': 5}
print(d['apple'])   # 3
d['cherry'] = 7
print(len(d))       # 3
print('banana' in d)  # True
del d['apple']
print(d)            # {'banana': 5, 'cherry': 7}

.get() से सुरक्षित खोज

d[key] से मौजूद न होने वाली कुंजी पढ़ने पर KeyError के साथ प्रोग्राम क्रैश हो जाता है। इसके बजाय d.get(key, default) का उपयोग करके वैकल्पिक मान लौटाएँ—यह एक सुरक्षित आदत है, जो अनपेक्षित रनटाइम त्रुटियों से बचाती है।

freq = {}
words = ['the', 'cat', 'sat', 'on', 'the', 'mat']
for w in words:
    freq[w] = freq.get(w, 0) + 1
print(freq)
# {'the': 2, 'cat': 1, 'sat': 1, 'on': 1, 'mat': 1}

print(freq.get('dog', 0))  # 0  (no KeyError)

साफ़-सुथरे समूहीकरण के लिए defaultdict

defaultdict(list) हर नई कुंजी के लिए अपने-आप एक खाली सूची बना देता है, इसलिए समूहीकरण वाली समस्याओं का दोहराव वाला प्रारंभिक कोड हट जाता है। defaultdict(int) आसान गिनती के लिए हर कुंजी को 0 से शुरू करता है।

from collections import defaultdict

groups = defaultdict(list)
words = ['eat', 'tea', 'tan', 'ate', 'nat', 'bat']
for w in words:
    key = ''.join(sorted(w))  # canonical anagram key
    groups[key].append(w)

print(list(groups.values()))
# [['eat','tea','ate'], ['tan','nat'], ['bat']]

Counter: तेज़ आवृत्ति मानचित्र

काउंटर गिनती के लिए बनाया गया डिक्शनरी है: इसे कोई भी iterable दें और तुरंत आवृत्ति मानचित्र पाएँ। most_common(k) सबसे अधिक बार आने वाले k आइटम लौटाता है। कोड anagram की जाँच दिखाता है।

from collections import Counter

c = Counter('abracadabra')
print(c)           # Counter({'a':5,'b':2,'r':2,'c':1,'d':1})
print(c.most_common(2))  # [('a', 5), ('b', 2)]

# Valid anagram check
def is_anagram(s, t):
    return Counter(s) == Counter(t)

print(is_anagram('anagram', 'nagaram'))  # True

Python सेट: अव्यवस्थित विशिष्ट संग्रह

सेट विशिष्ट आइटम रखता है और सदस्यता की जाँच O(1) समय में करता है। {1, 2, 3} या set(iterable) का उपयोग करें—लेकिन {} एक डिक्शनरी बनाता है, इसलिए खाली सेट के लिए set() का उपयोग करें। डुप्लिकेट पहचानने के लिए यह बहुत उपयोगी है।

seen = set()
nums = [1, 2, 3, 2, 1, 4]
duplicates = []
for n in nums:
    if n in seen:          # O(1) check
        duplicates.append(n)
    seen.add(n)
print(duplicates)  # [2, 1]
print(len(seen))   # 4  (unique values)

साक्षात्कारों के लिए सेट संचालन

सेट गणितीय संचालन करते हैं: | union, & intersection, - difference और ^ symmetric difference। इनसे "सामान्य आइटम" जैसी समस्याएँ एक ही पंक्ति में हल हो जाती हैं।

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

print(a | b)  # {1, 2, 3, 4, 5, 6}  union
print(a & b)  # {3, 4}              intersection
print(a - b)  # {1, 2}              difference
print(a ^ b)  # {1, 2, 5, 6}        symmetric diff

सदस्यता जाँच: सूची बनाम सेट

आपकी चुनी हुई संरचना गति बदल देती है। सूची में in से जाँच करना O(n) होता है, जबकि सेट में O(1)। बार-बार खोज करने से पहले सूची को सेट में बदलना गति बढ़ाने का एक सामान्य तरीका है।

word_list = ['apple', 'banana', 'cherry', 'date']
word_set  = set(word_list)

# O(n) per check
print('banana' in word_list)  # True

# O(1) per check
print('banana' in word_set)   # True

# Practical example: find common elements
a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7]
common = [x for x in a if x in set(b)]
print(common)  # [3, 4, 5]

डिक्शनरी पर पुनरावृत्ति: कुंजियाँ, मान और आइटम

डिक्शनरी पर .keys(), .values() या .items() के साथ लूप चलाएँ। लूप के बीच में कुंजियाँ कभी न हटाएँ—पहले उन्हें एक सूची में इकट्ठा करें, फिर बाद में हटाएँ। कोड देखें।

scores = {'Alice': 90, 'Bob': 75, 'Carol': 88}

for name, score in scores.items():
    print(f'{name}: {score}')

# Find key with max value
best = max(scores, key=scores.get)
print(best)  # Alice

# Safe deletion
to_del = [k for k, v in scores.items() if v < 80]
for k in to_del:
    del scores[k]
print(scores)  # {'Alice': 90, 'Carol': 88}

Frozenset: हैश करने योग्य सेट

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

from collections import defaultdict

words = ['eat', 'tea', 'tan', 'ate', 'nat', 'bat']
groups = defaultdict(list)
for w in words:
    key = frozenset(w)  # hashable; 'eat','tea','ate' all share same key
    groups[key].append(w)

print([sorted(g) for g in groups.values()])
# [['ate','eat','tea'], ['nat','tan'], ['bat']]

रूपांतरणों के लिए डिक्शनरी कॉम्प्रिहेंशन

डिक्शनरी कॉम्प्रिहेंशन एक ही पंक्ति में मानचित्रण बनाता है: {k: v for ...}। यह डिक्शनरी को उलटने या युग्मों को फ़िल्टर करने के लिए बहुत उपयोगी है। ध्यान दें: डिक्शनरी उलटने के लिए मानों का विशिष्ट होना आवश्यक है। कोड देखें।

# Invert a dict
original = {'a': 1, 'b': 2, 'c': 3}
inverted = {v: k for k, v in original.items()}
print(inverted)  # {1:'a', 2:'b', 3:'c'}

# Filter by value
scores = {'Alice': 90, 'Bob': 55, 'Carol': 78}
passing = {k: v for k, v in scores.items() if v >= 60}
print(passing)  # {'Alice': 90, 'Carol': 78}

सबसे लंबा लगातार चलने वाला अनुक्रम

सेट O(n) समय में सबसे लंबे लगातार चलने वाले अनुक्रम की समस्या हल कर देते हैं: सभी संख्याओं को एक सेट में डालें, फिर केवल उन संख्याओं से आगे गिनना शुरू करें जिनका पिछला मान मौजूद नहीं है। क्रमबद्ध करने की आवश्यकता नहीं है।

def longest_consecutive(nums):
    num_set = set(nums)
    best = 0
    for n in num_set:
        if n - 1 not in num_set:  # start of sequence
            cur = n
            streak = 1
            while cur + 1 in num_set:
                cur += 1
                streak += 1
            best = max(best, streak)
    return best

print(longest_consecutive([100,4,200,1,3,2]))  # 4 (1,2,3,4)

त्वरित जाँच

त्वरित जाँच—देखें कि इस पाठ में डिक्शनरी और सेट की अवधारणाएँ आपको कितनी अच्छी तरह समझ आईं। इस बार अपनी सहज समझ पर भरोसा करें। 🎯

पाठ का सारांश

सारांश: डिक्शनरी गिनती और समूहीकरण के लिए O(1) खोज देती हैं, Counter और defaultdict दोहराव वाला प्रारंभिक कोड कम करते हैं, और सेट O(n) स्कैन को O(1) जाँच में बदल देते हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ कोडिंग साक्षात्कार की तैयारी सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
90
पाठ
360

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

क्या “Python में डिक्शनरी और सेट” पाठ निःशुल्क है?

हाँ—“Python में डिक्शनरी और सेट” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Python में डिक्शनरी और सेट” में मैं क्या सीखूँगा?

dict और set बनाना, सदस्यता जाँचना तथा collections.Counter से आवृत्तियाँ गिनने जैसे सामान्य तरीकों को समझिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ कोडिंग साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या कोडिंग साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर कोडिंग साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Python में डिक्शनरी और सेट” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस कोडिंग साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर कोडिंग साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. सूचियाँ, टपल और स्लाइसिंग
  2. Python में डिक्शनरी और सेट
  3. कॉम्प्रिहेंशन और अंतर्निहित सुविधाएँ
  4. फ़ंक्शन, क्लोज़र और Lambda
← कोडिंग साक्षात्कार की तैयारी पर वापस जाएँ