Python शब्दकोशहरू: मूलभूतदेखि उन्नतसम्मको पूर्ण मार्गदर्शिका

१. Python मा एसोसिएटिभ एरे (डिक्शनरी) के हो?

Python को “एसोसिएटिभ एरे” भनेको कुञ्जी‑मान (key‑value) जोडीहरू प्रयोग गरेर डेटा व्यवस्थापन गर्ने डेटा संरचना हो।
सामान्यतया, “एसोसिएटिभ एरे” भनिने कुरा Python मा dict प्रकारको रूपमा उपलब्ध हुन्छ।
उदाहरणका लागि, नामलाई कुञ्जीको रूपमा प्रयोग गरी उमेर वा पेशा जस्ता मानहरूलाई मानको रूपमा राख्दा, डेटा खोजी र व्यवस्थापन प्रभावकारी हुन्छ।
यहाँ, “कुञ्जी” भनेको डेटा निर्दिष्ट गर्न प्रयोग हुने अनन्य पहिचानकर्ता हो, र प्रत्येक कुञ्जी अनन्य हुनुपर्छ।

डिक्शनरी प्रकार र अन्य डेटा संरचनाहरू बीचको भिन्नता

डिक्शनरी प्रकारको विशेषता भनेको कुञ्जीहरू प्रयोग गरेर छिटो खोजी गर्नु हो।
Python को सूची (list) वा ट्युपल (tuple) जस्ता अनुक्रम प्रकारहरूसँग तुलना गर्दा, तपाईंलाई तत्वहरू क्रमशः खोज्नुपर्दैन; तपाईं सिधै कुञ्जीद्वारा पहुँच गर्न सक्नुहुन्छ, जसले खोजी गति उल्लेखनीय रूपमा सुधार्छ।
विशेष गरी ठूलो मात्रामा डेटा ह्यान्डल गर्दा वा खोजी बारम्बार हुने परिस्थितिहरूमा, डिक्शनरी प्रकार अत्यन्त उपयोगी हुन्छ।

# Example of a dictionary
person = {
    "name": "Tanaka",
    "age": 30,
    "occupation": "Engineer"
}
print(person["name"])  # Output: Tanaka

२. Python डिक्शनरी कसरी बनाउने

Python मा, तपाईं विभिन्न तरिकाले डिक्शनरीहरू सिर्जना गर्न सक्नुहुन्छ।
तपाईं लिटरल नोटेशन, dict() फङ्क्शन, zip() फङ्क्शन आदि प्रयोग गर्न सक्नुहुन्छ, परिस्थितिलाई उपयुक्त विधि चयन गरेर।

लिटरल प्रयोग गर्ने विधि

लिटरल नोटेशनले कर्ली ब्रेस {} प्रयोग गरेर डिक्शनरी बनाउँछ, र यो सबैभन्दा सामान्य र सरल विधि हो।
लिटरल प्रयोग गर्दा तपाईं एकै लाइनमा कुञ्जी र मानहरू परिभाषित गर्न सक्नुहुन्छ, जसले डिक्शनरीहरू सहजै सिर्जना गर्न मद्दत गर्छ।

# Literal notation
fruit_prices = {
    "apple": 100,
    "banana": 150,
    "orange": 200
}

dict() फङ्क्शन प्रयोग गर्ने विधि

dict() फङ्क्शन ट्युपलहरूको सूचीबाट डिक्शनरी बनाउँदा आदि उपयोगी हुन्छ।
डेटा गतिशील रूपमा परिवर्तन हुँदा यो विधि विशेष गरी उपयोगी हुन्छ।

# dict function
fruit_prices = dict([("apple", 100), ("banana", 150), ("orange", 200)])

zip() फङ्क्शन प्रयोग गर्ने विधि

विभिन्न सूचीहरूलाई कुञ्जी र मानको रूपमा मिलाएर डिक्शनरी बनाउँदा, zip() फङ्क्शन प्रयोग गरेर संक्षिप्त रूपमा गर्न सकिन्छ।
यसले सम्बन्धित सूचीहरूबाट प्रभावकारी रूपमा डिक्शनरी उत्पन्न गर्न मद्दत गर्छ।

# zip function
keys = ["apple", "banana", "orange"]
values = [100, 150, 200]
fruit_prices = dict(zip(keys, values))

३. डिक्शनरीका आधारभूत अपरेसनहरू

Python डिक्शनरीहरू परिवर्तनशील डेटा संरचना हुन् जसले डेटा थप्ने, अद्यावधिक गर्ने, र मेट्ने लचिलो कार्यहरूलाई अनुमति दिन्छ।
तिनीहरू अन्य डेटा संरचनाहरूको तुलनामा छिटो खोजी गति पनि प्रदान गर्छन्।

तत्वहरू थप्ने र अद्यावधिक गर्ने

डिक्शनरीमा तत्व थप्न वा अद्यावधिक गर्न, तपाईंले निर्दिष्ट कुञ्जीमा मान असाइन गर्नुपर्छ।
अवस्थित कुञ्जीमा मान असाइन गर्दा त्यसलाई अद्यावधिक गरिन्छ, नयाँ कुञ्जी निर्दिष्ट गर्दा नयाँ प्रविष्टि थपिन्छ।

fruit_prices = {"apple": 100, "banana": 150}
# Add a new element
fruit_prices["orange"] = 200
# Update an existing element
fruit_prices["apple"] = 120

तत्वहरू मेट्ने

विशिष्ट कुञ्जीको तत्व मेट्दा, तपाईं del स्टेटमेन्ट वा pop() मेथड प्रयोग गर्न सक्नुहुन्छ।
pop() मेथडले मेटिएको मान फिर्ता दिन्छ, जसले हटाइएको डेटा राख्न आवश्यक परे उपयोगी हुन्छ।

# Deletion using the del statement
del fruit_prices["banana"]
# Deletion using the pop method (returns the deleted value)
removed_price = fruit_prices.pop("orange")

४. उन्नत अपरेसनहरू

डिक्शनरीहरूलाई उन्नत तरिकाले प्रयोग गर्दा अन्य डिक्शनरीहरूसँग मर्ज गर्ने र आवृत्ति गणना गर्ने जस्ता कार्यहरू समावेश हुन्छन्। यसले अझ जटिल डेटा हेरफेर सम्भव बनाउँछ।

डिक्शनरी मर्जिङ

धेरै डिक्शनरीहरूलाई एकमा एकत्रित गर्दा, update() मेथड उपयोगी हुन्छ। दोहोरिने कुञ्जीहरू भएमा तिनीहरू ओभरराइट हुन्छन्, जसले एकै चरणमा डेटा मर्ज वा अद्यावधिक गर्न अनुमति दिन्छ।

dict1 = {"apple": 100, "banana": 150}
dict2 = {"banana": 200, "grape": 300}
dict1.update(dict2)
# Output: {'apple': 100, 'banana': 200, 'grape': 300}

आवृत्ति गणना लागू गर्ने

Frequency counting उपयोगी हुन्छ, उदाहरणका लागि, जब स्ट्रिङमा प्रत्येक अक्षर कति पटक देखा पर्छ भन्ने गणना गरिन्छ। शब्दकोश प्रकारको प्रयोगले डेटा सङ्ग्रहण र विश्लेषणलाई प्रभावकारी बनाउँछ।

text = "apple"
frequency = {}
for char in text:
    if char in frequency:
        frequency[char] += 1
    else:
        frequency[char] = 1
# Output: {'a': 1, 'p': 2, 'l': 1, 'e': 1}

5. शब्दकोश मार्फत लूपिङ

लूपिङ शब्दकोशका सबै तत्वहरूलाई एकै पटक प्रक्रिया गर्न आदर्श हो। यसले तपाईंलाई कुञ्जीहरू र मानहरूलाई व्यक्तिगत रूपमा हेरफेर गर्न वा डेटाको सूची प्राप्त गर्न अनुमति दिन्छ।

लूपको साथ कुञ्जीहरू र मानहरू प्राप्त गर्दै

शब्दकोशमा कुञ्जीहरू, मानहरू, वा तिनीहरूको संयोजनहरू प्रक्रिया गर्न, तपाईं keys(), values(), र items() मेथडहरू प्रयोग गर्न सक्नुहुन्छ।

fruit_prices = {"apple": 100, "banana": 150, "orange": 200}
# Keys only
for key in fruit_prices.keys():
    print(key)
# Values only
for value in fruit_prices.values():
    print(value)
# Key-value pairs
for key, value in fruit_prices.items():
    print(f"The price of {key} is {value} yen")

6. Python शब्दकोशहरूको सारांश

Python शब्दकोशहरू (सहयोगी एरेहरू) डेटा कुञ्जी‑मान जोडीको रूपमा व्यवस्थापन गर्छन्, जसले खोज र अपरेसनहरूको कार्यक्षमता उल्लेखनीय रूपमा सुधार्छ। सूचीहरू र ट्युपलहरू सँग तुलना गर्दा, तिनीहरूले छिटो खोज प्रदान गर्छन्, जसले ठूलो मात्रामा डेटा ह्यान्डल गर्दा फाइदाजनक बनाउँछ। तिनीहरू डेटा सङ्ग्रहण र विश्लेषणका लागि पनि उपयुक्त छन्, र अन्य डेटा संरचनासँग संयोजन गर्न पनि उपयुक्त छन्, जसले Python मा आधारभूत डेटा हेरफेरका लागि अनिवार्य बनाउँछ। शब्दकोश अपरेसनहरूसँग परिचित हुनुले अझ उन्नत डेटा प्रोसेसिङलाई सम्भव बनाउँछ।

侍エンジニア塾