3. දත්ත ව්‍යුහ (Data Structures)

පාඩම 3.1: ලැයිස්තු (Lists)

දත්ත ව්‍යුහ යනු දත්ත විශාල ප්‍රමාණයක් කාර්යක්ෂමව ගබඩා කිරීමට, සංවිධානය කිරීමට සහ කළමනාකරණය කිරීමට භාවිතා කරන ක්‍රමවේදයන්ය. තනි විචල්‍යයක (variable) එක අගයක් පමණක් ගබඩා කළ හැකි නමුත්, දත්ත ව්‍යුහයකට අගයන් රාශියක් එකට තබාගත හැකිය.

අපි Python වල ඇති ප්‍රධාන දත්ත ව්‍යුහ හතරෙන්, පළමු සහ වඩාත්ම සුලභ එක වන **ලැයිස්තු (Lists)** ගැන ඉගෙන ගනිමු.

ලැයිස්තුවක් යනු අනුපිළිවෙලක් සහිත (ordered) සහ වෙනස් කළ හැකි (changeable/mutable) දත්ත එකතුවකි. ඔබට ඕනෑම වේලාවක ලැයිස්තුවකට අයිතම එකතු කිරීමට, ඉවත් කිරීමට හෝ වෙනස් කිරීමට හැකිය. ලැයිස්තු නිර්මාණය කරන්නේ හතරැස් වරහන් [] භාවිතා කරමිනි.

# විවිධ ලැයිස්තු සඳහා උදාහරණ
fruits = ["apple", "banana", "mango"]      # ස්ට්‍රින්ග් ලැයිස්තුවක්
numbers = [10, 20, 30, 40, 50]            # පූර්ණ සංඛ්‍යා ලැයිස්තුවක්
mixed_list = ["hello", 100, True, 25.5]  # මිශ්‍ර දත්ත වර්ග සහිත ලැයිස්තුවක්

ලැයිස්තුවක අයිතම ලබා ගැනීම (Accessing Items)

ලැයිස්තුවක ඇති අයිතම ලබාගැනීමට එහි දර්ශකය (index) භාවිතා කරයි. වැදගත්ම දෙය: Python වල දර්ශක 0 සිට ආරම්භ වේ. පළමු අයිතමයේ දර්ශකය 0, දෙවැන්න 1, ආදී වශයෙනි.

fruits = ["apple", "banana", "mango", "orange"]
print(fruits[0])   # ප්‍රතිඵලය: apple
print(fruits[2])   # ප්‍රතිඵලය: mango
print(fruits[-1])  # සෘණ දර්ශක: -1 යනු අවසාන අයිතමයයි. ප්‍රතිඵලය: orange

ලැයිස්තු සඳහා පොදු මෙහෙයුම් (Common List Operations)

අගයක් වෙනස් කිරීම (Changing an Item):

fruits = ["apple", "banana", "mango"]
fruits[1] = "cherry"  # දර්ශක 1 හි ඇති "banana" වෙනුවට "cherry" ආදේශ වේ.
print(fruits)         # ප්‍රතිඵලය: ['apple', 'cherry', 'mango']

අයිතම එකතු කිරීම (Adding Items):

  • append(): ලැයිස්තුවේ අවසානයට අයිතමයක් එක් කරයි.
  • insert(): නිශ්චිත දර්ශකයකට අයිතමයක් ඇතුළත් කරයි.
fruits.append("orange")
print(fruits)  # ප්‍රතිඵලය: ['apple', 'cherry', 'mango', 'orange']
fruits.insert(1, "grapes")
print(fruits)  # ප්‍රතිඵලය: ['apple', 'grapes', 'cherry', 'mango', 'orange']

අයිතම ඉවත් කිරීම (Removing Items):

  • remove(): නම සඳහන් කර අයිතමයක් ඉවත් කරයි.
  • pop(): දර්ශකය සඳහන් කර අයිතමයක් ඉවත් කරයි. දර්ශකය නොදුනහොත්, අවසාන අයිතමය ඉවත් කරයි.
fruits.remove("mango")
print(fruits) # ප්‍රතිඵලය: ['apple', 'grapes', 'cherry', 'orange']
fruits.pop(2)
print(fruits) # ප්‍රතිඵලය: ['apple', 'grapes', 'orange']

වෙනත් ප්‍රයෝජනවත් ශ්‍රිත:

  • len(): ලැයිස්තුවේ ඇති මුළු අයිතම ගණන (length) ලබා දෙයි.
  • sort(): ලැයිස්තුව අකාරාදී පිළිවෙලට හෝ සංඛ්‍යාත්මක පිළිවෙලට සකසයි.
numbers = [40, 10, 50, 20, 30]
numbers.sort()
print(numbers) # ප්‍රතිඵලය: [10, 20, 30, 40, 50]