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 05: දත්ත ගොඩක් එකතැන තියමු! (Python Lists & Data Structures) 📚🛒

Python Lists Data Structure deep explanation Sinhala Tutorial Part 05 - Indexing, Slicing, and Methods

අපි මේ වෙනකම් ඉගෙන ගත්තේ තනි තනි දත්ත (Variables) එක්ක වැඩ කරන හැටිනේ. ඒක හරියට ඔයා කඩේ ගිහින් ගේන හැම බඩුවක්ම අතේ උස්සන් එනවා වගේ වැඩක්. බඩු 2-3ක් නම් පුළුවන්, ඒත් බඩු 100ක් වුනොත්? 🛒😰

අපිට ඕන කරනවා ලොකු "බෑග් එකක්". අන්න ඒ බෑග් එකට Programming වල කියන්නේ Data Structure එකක් කියලා. Python වල තියෙන ජනප්‍රියම සහ බලවත්ම බෑග් එක තමයි "List" එක.

අද පාඩම ටිකක් ගැඹුරුයි. මොකද මේක තමයි ඔයා හදන ඕනෑම ලොකු Software එකක (Facebook Newsfeed එකේ ඉඳන් Daraz Cart එක දක්වා) අඩිතාලම වෙන්නේ. හොඳට අවධානයෙන් කියවන්න. 👇

1. මොකක්ද මේ List එකක් කියන්නේ? 📜

සරලවම කිව්වොත්, "පිළිවෙලකට සැකසුණු දත්ත එකතුවක්" (Ordered Collection) තමයි List එකක් කියන්නේ. Python වලදී අපි List එකක් අඳුරගන්නේ කොටු වරහන් [ ] වලින්.

List එකක විශේෂත්වයන්:
  • ඕනෑම දෙයක් දාන්න පුළුවන්: එකම List එකක් ඇතුලේ Numbers, Strings, Booleans ඔක්කොම කලවමේ තියන්න පුළුවන්. (වෙන භාෂා වල මේක බෑ!).
  • පිළිවෙලක් තියෙනවා (Ordered): අපි දාන පිළිවෙලටම තමයි බඩු ටික තියෙන්නේ.
  • වෙනස් කරන්න පුළුවන් (Mutable): ලිස්ට් එක හැදුවට පස්සෙත් අපිට අලුතින් දේවල් එකතු කරන්න, අයින් කරන්න පුළුවන්.
# පරණ ක්‍රමය (මාර වදයක්) 😫
friend1 = "Kamal"
friend2 = "Nimal"
friend3 = "Sunil"

# List ක්‍රමය (පට්ට ලේසියි) 😎
friends = ["Kamal", "Nimal", "Sunil"]
numbers = [10, 20, 30, 40, 50]
mixed_list = ["KP", 25, True, 3.14] # කලවම් ලිස්ට් එකක්

2. දත්ත එළියට ගැනීම (Indexing & Slicing) 🔍

ලිස්ට් එකක් ඇතුලේ බඩු දැම්මට වැඩක් නෑ, ඒවා අපිට ඕන වෙලාවට එළියට ගන්න දැනගන්න ඕනේ. මේකට අපි කියන්නේ Indexing කියලා. හැම බඩුවකටම අංකයක් (Index Number) තියෙනවා.

ඇයි Computer එක 0 සිට ගණන් කරන්නේ? (The Zero Mystery) 🤔

ගොඩක් අයට එන ප්‍රශ්නයක් මේක. මනුස්සයෝ ගණන් කරන්න පටන් ගන්නේ 1, 2, 3 කියලා. හැබැයි Computer එක පටන් ගන්නේ 0, 1, 2 කියලා. ඇයි බං එහෙම වෙන්නේ? 🧐

ගැඹුරු විද්‍යාත්මක හේතුව (Memory Offset):

List එකක් කියන්නේ Computer Memory (RAM) එකේ ළඟ ළඟ තියෙන කාමර පේළියක් වගේ. Variable එකේ නම (උදා: friends) කියන්නේ ඒ පේළියේ ආරම්භක ස්ථානයට (Start Point).

  • ඔයාට පළවෙනි කාමරේට ("Kamal") යන්න ඕන නම්, ඔයා ආරම්භක තැන ඉඳන් කොච්චර දුරක් යන්න ඕනද? පියවර 0 යි! (මොකද ඔයා දැනටමත් එතනනේ ඉන්නේ).
  • දෙවෙනි කාමරේට ("Nimal") යන්න නම්, ඔයා ආරම්භයේ ඉඳන් පියවර 1ක් ඉස්සරහට යන්න ඕනේ.
අන්න ඒ "යන්න ඕන පියවර ගාණ" (Steps from start) තමයි මේ Index එක කියන්නේ. ඒකයි අපි 0න් පටන් ගන්නේ! 😎🧠
my_fruits = ["Apple", "Banana", "Mango", "Orange"]

print(my_fruits[0]) # Output: Apple (පළමු එක්කෙනා)
print(my_fruits[2]) # Output: Mango (තුන්වන එක්කෙනා)

Negative Indexing (අග ඉඳන් මුලට) ↩️

Python වල විතරක් තියෙන සුපිරි වැඩකෑල්ලක් මේක. අපිට List එකේ අන්තිම එකා කවුද කියලා හොයන්න ඕන නම්, ලිස්ට් එකේ දිග ගණන් කර කර ඉන්න ඕන නෑ. කෙලින්ම -1 ගැහුවා නම් හරි.

print(my_fruits[-1]) # Output: Orange (අන්තිම එකා)
print(my_fruits[-2]) # Output: Mango (අග ඉඳන් දෙවෙනියා)

Slicing (කේක් කෑල්ලක් කපමු) 🍰

අපිට ලිස්ට් එකෙන් කොටසක් විතරක් කපලා ගන්න ඕන නම්? ඒකට අපි Slicing [start:stop] පාවිච්චි කරනවා.

numbers = [0, 1, 2, 3, 4, 5, 6]

# Index 2 සිට 5 දක්වා (5 අහුවෙන්නේ නෑ!)
print(numbers[2:5]) # Output: [2, 3, 4]

# මුල සිට Index 4 දක්වා
print(numbers[:4]) # Output: [0, 1, 2, 3]

3. List එක වෙනස් කිරීම (List Methods) 🛠️

List එකක් කියන්නේ "Mutable" (වෙනස් කළ හැකි) දෙයක් කියලා මම කිව්වනේ. අපි බලමු කොහොමද ඒක කරන්නේ කියලා. Python මේකට අපිට විශේෂ Tools (Methods) ටිකක් දීලා තියෙනවා.

  • .append(item) - අගට එකතු කිරීම: අලුත් බඩුවක් ලිස්ට් එකේ අන්තිමට දානවා.
  • .insert(index, item) - මැද්දට රිංගවීම: අපිට ඕන තැනකට බලෙන්ම ඇතුල් කරනවා.
  • .remove(value) - නම කියලා අයින් කිරීම: "Banana" අයින් කරන්න කිව්වොත්, ලිස්ට් එකේ පළවෙනියට හම්බෙන Banana එක අයින් කරනවා.
  • .pop(index) - අංකය කියලා අයින් කිරීම: Index එක දුන්නම ඒක අයින් කරනවා. මුකුත් නොදී .pop() ගැහුවොත් අන්තිම එකා එළියට විසි කරනවා.
cart = ["Phone", "Laptop"]

cart.append("Headphone") # -> ["Phone", "Laptop", "Headphone"]
cart.insert(1, "Mouse") # -> ["Phone", "Mouse", "Laptop", "Headphone"]
cart.remove("Phone") # -> ["Mouse", "Laptop", "Headphone"]
last_item = cart.pop() # -> "Headphone" අයින් වෙනවා. cart එක: ["Mouse", "Laptop"]

4. The Power Combo: Lists + Loops 🤝

ලිස්ට් එකක තියෙන බඩු 1000ක් වුනත් එක පාර Print කරන්න ඕන වුනාම අපි මොකද කරන්නේ? print(list[0]), print(list[1])... කියලා ලියනවද? නෑ!

අපි කලින් පාඩමේ ඉගෙන ගත්ත For Loop එක මෙතනට ගේනවා. Python වල මේක මාරම ලේසියි.

shopping_list = ["Egg", "Milk", "Bread", "Butter"]

for item in shopping_list:
    print(f"මට අමතක නොකර {item} ගේන්න ඕනේ.")

මේ කෝඩ් එකෙන්, item කියන Variable එකට ලිස්ට් එකේ තියෙන දේවල් එකින් එක ඉබේම ඇවිත් Loop එක වැඩ කරනවා. පට්ට නේද? 😎

Project Time: Smart Shopping Cart 🛒📲

දැන් අපි ඉගෙන ගත්ත හැමදේම (Lists, Loops, Input, If/Else, While True) එකතු කරලා, ඇත්තටම වැඩ කරන සොෆ්ට්වෙයාර් එකක් හදමු. මේකෙන් ඔයාට බඩු ලිස්ට් එකට දාන්න, බලන්න සහ අයින් කරන්න පුළුවන්.

💻 The Full Code

cart = [] # 1. හිස් ලිස්ට් එකක් හදාගන්නවා (අපේ බෑග් එක)

print("🛒 Welcome to Smart Shopping Cart!")

while True:
    print("\n--- Menu ---")
    print("1. බඩු එකතු කරන්න (Add)")
    print("2. ලිස්ට් එක බලන්න (View)")
    print("3. බඩුවක් අයින් කරන්න (Remove)")
    print("4. ඉවත් වන්න (Exit)")

    choice = input("ඔයාගේ තේරීම (1-4): ")

    # --- 1. Add Item ---
    if choice == "1":
        item = input("ගන්න ඕන දේ Type කරන්න: ")
        cart.append(item) # මෙතනින් තමයි බෑග් එකට දාන්නේ
        print(f"✅ {item} එකතු කළා!")

    # --- 2. View List ---
    elif choice == "2":
        print("\n🛍️ ඔයාගේ බඩු ලිස්ට් එක:")
        # len() කියන්නේ ලිස්ට් එකේ දිග බලන එක
        if len(cart) == 0:
            print("තාම මුකුත් නෑ... (Empty)")
        else:
            # For Loop එකෙන් ලස්සනට පෙන්නනවා
            for product in cart:
                print(f"- {product}")

    # --- 3. Remove Item ---
    elif choice == "3":
        remove_item = input("අයින් කරන්න ඕන දේ කියන්න: ")
        # 'in' වලින් බලනවා ඒක ලිස්ට් එකේ තියෙනවද කියලා
        if remove_item in cart:
            cart.remove(remove_item)
            print(f"❌ {remove_item} අයින් කළා!")
        else:
            print("⚠️ එහෙම දෙයක් ලිස්ට් එකේ නෑනේ බොක්ක!")

    # --- 4. Exit ---
    elif choice == "4":
        print("Good Bye! 👋 Happy Shopping!")
        break # Loop එක කඩනවා

    else:
        print("⚠️ වැරදි අංකයක්! ආයේ උත්සාහ කරන්න.")

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

අද ඔයා ඉගෙන ගත්තේ Programming වල හදවත වගේ දෙයක්. List එකක් කියන්නේ දත්ත හසුරුවන්න තියෙන මූලිකම මෙවලමයි. මේ Shopping Cart Project එක තනියම Type කරලා Run කරලා බලන්න. කොහොමද මේකේ Memory එක වැඩ කරන්නේ කියලා ඔයාටම තේරෙයි.

ඊළඟ කොටසින්: List වල නරක සහෝදරයා සහ Dictionary පොත (Tuples & Dictionaries) 📖
දිගටම 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. 🤖