अध्याय २ · खण्ड I · 28 मिनेट
डाटाका आकार: सूची, शब्दकोश, र तालिका
यो ट्र्याकमा तपाईंले काम गर्ने झन्डै हरेक डाटाको टुक्रा तीन आकारमध्ये एउटामा अटाउँछ। अहिले नै यिनमा सहज हुनुहोस् भने अधिकांश वास्तविक कोड पढ्न सजिलो हुन्छ।
पछिल्लो अध्यायमा तपाईंले नाम र अभिवादन दुई अलग्गै भेरिएबलमा भण्डारण गर्नुभयो। दुई कुरा भएसम्म त्यो ठीक छ। दुई सय भएपछि — एक वर्षको खल्ती कारोबारको दुई सय रेकर्ड, NEPSE मूल्यका दुई सय दिन, दुई सय विद्यार्थीका रेकर्ड — तिनलाई समात्न आकार चाहिन्छ। अधिकांश वास्तविक कार्यक्रमहरू मूलतः सही आकार छनोट गर्ने र त्यसमा डाटा हाल्ने हुन्।
तीनवटा आकार जसले झन्डै सबै ओगट्छन्
तपाईंले बारम्बार प्रयोग गर्ने ठ्याक्कै तीनवटा छन्:
- सूची (list) — क्रमबद्ध वस्तुहरूको शृङ्खला।
- शब्दकोश (dictionary) — नामकरण गरिएका गुणहरूको सेट।
- शब्दकोशहरूको सूची — एउटा तालिका। प्रत्येकमा नामकरण गरिएका गुणहरू भएको कुराहरूको सङ्ग्रह।
यो ट्र्याकका झन्डै सबै डाटासेट यी तीनमध्ये एउटामा खुम्चिन्छन्। एक पटक ध्यानले सिक्नुभयो भने बाँकी ट्र्याक छिटो हुन्छ।
सूची
सूची भनेको जे सुनिन्छ त्यही हो। क्रमबद्ध शृङ्खला। तपाईं वर्ग कोष्ठक र अल्पविरामसहित लेख्नुहुन्छ:
expenses = [120, 80, 250, 90, 45]
अब expenses मा पाँच सङ्ख्या छन्। केही उपयोगी सञ्चालन:
expenses[0] # 120 — पहिलो वस्तु
expenses[-1] # 45 — अन्तिम वस्तु
len(expenses) # 5 — कति वस्तु
expenses.append(300) # अन्तमा 300 थप्छ
expenses[1:3] # [80, 250] — सूचकाङ्क 1 देखि 3 अघिसम्म
केही कुरा सम्झेर लानुहोस्:
- सूचीहरू शून्य-सूचकाङ्कित हुन्छन्। पहिलो वस्तु
expenses[0]हो,expenses[1]होइन। यसले झन्डै सबैलाई एक हप्ता अल्मल्याउँछ। संसार गलत छ; प्रोग्रामिङ भाषाहरू अधिकांश शून्यबाट सुरु गर्नमा एकमत छन्। - सूचीमा जे पनि हाल्न सक्नुहुन्छ — सङ्ख्या, स्ट्रिङ, अरू सूची, मिश्रित प्रकार। तर अधिकांश वास्तविक सूचीमा एकै किसिमको कुरा हुन्छ।
len(...)ले कति छन् भन्छ।.append(...)ले अन्त्यमा थप्छ। यी दुई र शून्य-सूचकाङ्क मिलाएर सूचीसँगको 80% काम चल्छ।
शब्दकोश
शब्दकोशले एउटै कुराका नामकरण गरिएका गुणहरू राख्छ। कुर्ली कोष्ठक, की-मानका जोडी, अल्पविरामले छुट्ट्याइएका:
transaction = {
"vendor": "Khalti",
"amount": 5000,
"date": "2026-06-25",
"approved": True,
}
तपाईं स्थानले होइन, की ले मान पहुँच गर्नुहुन्छ:
transaction["vendor"] # "Khalti"
transaction["amount"] # 5000
असाइनमेन्टमार्फत मान थप्न वा बदल्न सक्नुहुन्छ:
transaction["status"] = "settled"
transaction["amount"] = 5050
शब्दकोश रोज्नुपर्ने सही समय भनेको एउटै कुराका धेरै नामकरण गरिएका टुक्रा हुँदा हो — व्यक्तिको नाम, उमेर, र जिल्ला हुन्छन्; कारोबारको विक्रेता, रकम, र मिति हुन्छन्। यदि तपाईंले एउटै कुरालाई वर्णन गर्ने तीनवटा भेरिएबल — vendor, amount, date — लेख्दै हुनुहुन्छ भने, त्यो शब्दकोश बन्न खोज्दैछ।
शब्दकोशहरूको सूची: तालिका आकार
यो डाटा-कामको सम्पूर्ण ब्रह्माण्डमा एकल सबैभन्दा उपयोगी आकार हो। कसैले फरक नाम दिनुअघि झन्डै हरेक वास्तविक डाटासेट यही नै हुन्छ:
transactions = [
{"vendor": "Khalti", "amount": 5000, "date": "2026-06-25"},
{"vendor": "eSewa", "amount": 1200, "date": "2026-06-25"},
{"vendor": "Khalti", "amount": 450, "date": "2026-06-26"},
{"vendor": "FonePay", "amount": 900, "date": "2026-06-26"},
]
यो तालिका हो। प्रत्येक शब्दकोश एउटा पङ्क्ति हो। की (vendor, amount, date) स्तम्भहरू हुन्। यो स्प्रेडसिटको आकार हो, NEPSE निर्यातको आकार हो, खण्ड 3 मा तपाईंले पढ्ने CSV फाइलको आकार हो।
एक पटक भयो भने सामान्य प्रश्नहरू सजिलैसँग सोध्न सकिन्छ। प्रत्येक विक्रेता सूचीबद्ध गर्न:
for t in transactions:
print(t["vendor"])
सबै रकम जोड्न:
total = 0
for t in transactions:
total = total + t["amount"]
print(total) # 7550
ट्र्याकको बाँकी अवधिभर तपाईंले यस्तै आकारको कोड हरेक हप्ता लेख्नुहुनेछ।
छोटो तुलना
स्पष्ट राख्न एउटा सानो तालिका:
| आकार | कहिले प्रयोग गर्ने | उदाहरण |
|---|---|---|
| सूची | समान खालका वस्तुहरूको क्रमबद्ध शृङ्खला | [120, 80, 250] — पाँच खर्च |
| शब्दकोश | एउटै कुराका नामकरण गरिएका गुण | {"vendor": "Khalti", "amount": 5000} |
| शब्दकोशहरूको सूची | धेरै कुराहरूको सङ्ग्रह, प्रत्येकका नामकरण गरिएका गुण | प्रति कारोबार एक पङ्क्ति |
यदि कुनै बेला आकार रोज्न अल्मलिनुभयो भने सोध्नुहोस्: म एउटा शृङ्खला, एउटा कुराको गुण, या त्यस्ता कुराहरूको सङ्ग्रह समातिरहेको छु?
ध्यानले पढ्ने एउटा कोड टुक्रा
क्विजअघि एक सानो कार्यक्रम। यसले तीनवटै आकार प्रयोग गर्छ:
transactions = [
{"vendor": "Khalti", "amount": 5000},
{"vendor": "eSewa", "amount": 1200},
{"vendor": "Khalti", "amount": 450},
{"vendor": "FonePay", "amount": 900},
]
vendors = []
for t in transactions:
vendors.append(t["vendor"])
print(vendors)
चलाउनुअघि आउटपुट अनुमान गर्नुहोस्।
अपेक्षित आउटपुट यो हो:
['Khalti', 'eSewa', 'Khalti', 'FonePay']
फेरि एक पटक पढ्नुहोस्। शब्दकोशहरूको सूची इनपुट हो। स्ट्रिङहरूको सूची आउटपुट हो। शब्दकोश पहुँच (t["vendor"]) र सूची थप (vendors.append(...)) — डाटालाई एक आकारबाट अर्कोमा सार्ने यी दुई सञ्चालन हुन्। यो ट्र्याकका झन्डै सबै डाटा-आकार दिने कार्यको लय यही हो।
आफ्नो बुझाइ जाँच्नुहोस्
Quick check
—एक साथीले यो कार्यक्रम लेख्छिन्: prices = [200, 180, 220, 190] print(prices[1]) यसले के प्रिन्ट गर्छ?
Quick check
—तपाईंसँग यो डाटा छ: people = [ {'name': 'Anu', 'district': 'Kaski'}, {'name': 'Bikas', 'district': 'Morang'}, ] कुन अभिव्यक्तिले 'Morang' स्ट्रिङ दिन्छ?
अब के आउँछ
अब तपाईंसँग डाटा राख्ने आकारहरू छन्। अर्को खण्डले डाटालाई सार्ने औजार दिन्छ: कामका टुक्रालाई नाम दिने फङ्क्सन, र कपी-पेस्ट नगरी उही काम धेरै पटक गर्ने लूप। यी दुई मिलेर शब्दकोशहरूको सूचीलाई गणना गर्न मिल्ने केहीमा बदल्छन्।