BREAKING NEWS
🚀 Kaweesha launched the new AI Tech Blog! 💻 Python & Java Tutorials are now live. 🎮 Game Development Guide: Building 2D Games with Godot. 🌐 Web Hosting secrets revealed - Check the latest post!

Python Sinhala - Part 06: ලිස්ට් එකෙන් එහා ලෝකය (Tuples, Sets & Dictionaries) 🔐📖

Python Tuples Sets and Dictionaries Data Structures deep explanation Sinhala Tutorial Part 06

කලින් පාඩමේදී (Part 05) අපි කතා කළේ List ගැනනේ. List එක කියන්නේ හරියට "ගමන් මල්ලක්" (Travel Bag) වගේ. ඕන වෙලාවක සිප් එක ඇරලා බඩු දාන්නත් පුළුවන්, එළියට විසි කරන්නත් පුළුවන්. 🎒

හැබැයි හිතන්න, ඔයා බැංකුවක වැඩ කරනවා කියලා. ඔයාට ඕන පාරිභෝගිකයාගේ Account Number එක Save කරගන්න. ඒක කවදාවත් වෙනස් වෙන්න බෑ නේද? එතකොට List එකක් පාවිච්චි කරලා හරියන්නේ නෑ (මොකද List වෙනස් කරන්න පුළුවන් නිසා).

අන්න ඒ වගේ විශේෂ අවස්ථා වලට Python අපිට තව සුපිරි Data Structures 3ක් දීලා තියෙනවා. අද අපි මේ තුනම "පොඩි ළමයෙක්ට තේරෙන විදියට" ගොඩ දාගමු. 👇

1. Tuple (ටපල්) - වෙනස් කළ නොහැකි ලැයිස්තුව 🔐

සරලවම කිව්වොත්, Tuple එකක් කියන්නේ Lock කරපු List එකක්. හැදුවට පස්සේ ආයේ කෑලි එකතු කරන්න (Append) බෑ, අයින් කරන්න (Remove) බෑ. ඒක ගල් කුළුණක් වගේ ස්ථිරයි.

අපි මේකට පාවිච්චි කරන්නේ වටකුරු වරහන් ( ).

Tuple එකක් විශේෂ වෙන්නේ ඇයි?
  • Immutable (වෙනස් කළ නොහැක): මේක තමයි ලොකුම වාසිය. වැරදිලා වත් ඩේටා වෙනස් වෙන්නේ නෑ.
  • Faster (වේගවත්): List එකට වඩා මෙමරිය අඩුවෙන් ගන්න නිසා, Tuple එකක් List එකකට වඩා වේගයෙන් වැඩ කරනවා.
# Tuple එකක් හදමු
my_tuple = ("Apple", "Banana", "Cherry")

print(my_tuple[0]) # Output: Apple (කියවන්න පුළුවන්)

# ⚠️ Error එන තැන:
# my_tuple[1] = "Mango" -> බෑ! වෙනස් කරන්න බෑ.
# my_tuple.append("Grapes") -> බෑ! අලුතෙන් දාන්න බෑ.

Magic Trick: Unpacking (පෙට්ටිය කැඩීම) 🎁

Python වල විතරක් තියෙන පිස්සු හැදෙන වැඩකෑල්ලක් මේක. අපිට පුළුවන් Tuple එකක තියෙන බඩු ටික, එක පාර Variables වලට කඩලා ගන්න.

coordinates = (10, 20)

# පරණ ක්‍රමය: x = coordinates[0]...
# Unpacking ක්‍රමය:
x, y = coordinates

print(x) # Output: 10
print(y) # Output: 20

2. Set (සෙට්) - ඩුප්ලිකේට් නැති ලෝකය 🚫👯

ඔයා ඉස්කෝලේ ගණිතයට ඉගෙන ගත්ත "කුලක" (Sets) මතකද? මේ ඒකම තමයි. Set එකක තියෙන විශේෂත්වය තමයි, එකම දේ දෙපාරක් තියෙන්න බෑ.

අපි මේකට පාවිච්චි කරන්නේ සඟල වරහන් { }.

Set එකක් පාවිච්චි කරන්නේ කවද්ද?
ඔයාට List එකක තියෙන ඩුප්ලිකේට් (ආයේ ආයේ තියෙන ඒවා) අයින් කරගන්න ඕන වුනාම, Set එකක් තමයි ලේසිම ක්‍රමය.
# ඩුප්ලිකේට් තියෙන List එකක්
numbers = [1, 2, 2, 3, 3, 4]

# මේක Set එකක් කරපු ගමන් ඩුප්ලිකේට් මැකෙනවා
unique_numbers = set(numbers)
print(unique_numbers) # Output: {1, 2, 3, 4}
⚠️ අනුපිළිවෙලක් නෑ (Unordered):
Set එකක් ඇතුලේ බඩු තියෙන්නේ අපි දාපු පිළිවෙලට නෙමෙයි. ඒ නිසා my_set[0] කියලා Index වලින් Data ගන්න බෑ!

3. Dictionary (ඩික්ෂනරි) - දත්ත ලෝකයේ රජු 👑

මේක තමයි Python වල තියෙන බලවත්ම Data Structure එක. අද කාලේ තියෙන හැම Database එකක්ම (JSON Format) වැඩ කරන්නේ මේ ක්‍රමයට.

නිකන්ම ලිස්ට් එකක් ගත්තොත් අපි Data ගන්නේ අංකයෙන් (Index 0, 1, 2). හැබැයි Dictionary එකකදි අපි Data ගන්නේ "නමකින්" (Key).

  • Key (යතුර): අපි හොයන නම (උදා: "Name", "Age").
  • Value (වටිනාකම): ඒ නමට අදාළ දත්තය (උදා: "Kamal", 25).
Syntax: { "key": value }
# Dictionary එකක් හදමු
student = {
    "name": "Kavisha",
    "age": 22,
    "city": "Colombo",
    "is_student": True
}

# 1. Data ගන්න හැටි (Key එක දෙනවා)
print(student["name"]) # Output: Kavisha

# 2. අලුත් Data එකතු කරන හැටි
student["email"] = "kp@gmail.com"

# 3. තියෙන Data වෙනස් කරන හැටි (Update)
student["city"] = "Kandy"

4. මොකක්ද හොඳම? (Comparison Table) 📊

මේ 4 පටලගන්නේ නැතුව මතක තියාගන්න ලේසිම විදිය මෙන්න.

Type වරහන් වෙනස් කළ හැකිද? පිළිවෙලක් (Order)? Duplicate පුළුවන්ද?
List [ ] ඔව් (Mutable) ඔව් ✅ ඔව් ✅
Tuple ( ) නෑ (Immutable) 🔒 ඔව් ✅ ඔව් ✅
Set { } ඔව් (Add/Remove) නෑ ❌ නෑ ❌ (Unique)
Dictionary {k:v} ඔව් (Mutable) ඔව් (Python 3.7+) Keys බෑ ❌

Project: Contact Book App 📞📘

අපි ඉගෙන ගත්ත Dictionary පාවිච්චි කරලා, අපිටම කියලා Contact Save කරන App එකක් හදමු. මේකේ නම දුන්නම Number එක එන්න ඕනේ.

💻 The Contact Book Code

contacts = {} # හිස් Dictionary එකක් (Database එක)

print("📘 Welcome to Python Phonebook!")

while True:
    print("\n1. Add Contact | 2. Search | 3. Delete | 4. View All | 5. Exit")
    choice = input("ඔයාගේ තේරීම: ")

    # --- 1. Add Contact ---
    if choice == "1":
        name = input("නම: ")
        phone = input("අංකය: ")
        contacts[name] = phone # Dictionary එකට දානවා (Key=Name, Value=Phone)
        print(f"✅ {name} Save කළා!")

    # --- 2. Search Contact ---
    elif choice == "2":
        search_name = input("හොයන්න ඕන නම: ")
        # .get() එකෙන් බැලුවම Error එන්නේ නෑ නැති වුනත්
        result = contacts.get(search_name, "සොරි! එහෙම කෙනෙක් නෑ.")
        print(f"📞 Number: {result}")

    # --- 3. Delete Contact ---
    elif choice == "3":
        del_name = input("මකන්න ඕන නම: ")
        if del_name in contacts:
            del contacts[del_name]
            print(f"🗑️ {del_name} Delete කළා!")
        else:
            print("⚠️ එහෙම කෙනෙක් නෑනේ!")

    # --- 4. View All ---
    elif choice == "4":
        print("\n📜 Contact List:")
        # Key සහ Value දෙකම ගන්න items() පාවිච්චි කරනවා
        for name, num in contacts.items():
            print(f"- {name}: {num}")

    elif choice == "5":
        break

අවසාන වශයෙන්... 🏁

සුභ පැතුම්! 🎉 දැන් ඔයා Python වල තියෙන ප්‍රධානම Data Structures 4 ම (List, Tuple, Set, Dictionary) දන්නවා. මේ දැනුම තිබ්බොත් විතරයි ඉස්සරහට එන AI Projects, Web Development Projects කරන්න පුළුවන් වෙන්නේ.

ඊළඟ කොටසින්: වෙන කෙනෙක් ලියපු කෝඩ් අපේ වැඩ වලට ගන්නේ කොහොමද? (Modules & Libraries) 📦
දිගටම KP Tech Gear සමඟ රැඳී සිටින්න! 👇

Author

About

Tech enthusiast, Python/Java Developer, and Gamer. Sharing knowledge about coding and modern technology.

Discussion

Kaweesha AI ×
Hello Kaweesha! I am ready to help with Python, Java, or Hosting queries. 🤖