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

පාඩම 3.4: සෙට් (Sets)

සෙට් එකක් යනු දත්ත එකතුවක් ගබඩා කරන තවත් ක්‍රමයකි. මෙහි ප්‍රධාන ලක්ෂණ දෙකක් ඇත:

  • අනුපිළිවෙලක් රහිතයි (Unordered): සෙට් එකක ඇති අයිතම වලට නිශ්චිත පිලිවෙලක් නැත. එබැවින් ඔබට දර්ශක (index) මගින් අයිතම ලබාගත නොහැක.
  • අනුපිටපත් නොමැත (No Duplicates): සෙට් එකකට එකම අගය සහිත අයිතම දෙකක් තිබිය නොහැක. ඔබ අනුපිටපත් සහිත අගයන් එකතු කළත්, සෙට් එක ස්වයංක්‍රීයව එය ඉවත් කරයි.

සෙට් ද නිර්මාණය කරන්නේ දඟර වරහන් {} භාවිතා කරමිනි.

# සෙට් එකක් නිර්මාණය කිරීම
# අනුපිටපත් (duplicates) ස්වයංක්‍රීයව ඉවත් වන බව බලන්න
numbers = {1, 2, 3, 4, 2, 3, 5}
print(numbers)

ප්‍රතිඵලය:

{1, 2, 3, 4, 5}

සෙට් සමග වැඩ කිරීම

අයිතම එකතු කිරීම (Adding Items): .add() ක්‍රමය භාවිතයෙන් සෙට් එකකට අයිතමයක් එක් කළ හැක.

fruits = {"apple", "banana"}
fruits.add("cherry")
print(fruits) # ප්‍රතිඵලය: {'apple', 'banana', 'cherry'}
fruits.add("apple")
print(fruits) # ප්‍රතිඵලය: {'apple', 'banana', 'cherry'}

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

  • .remove(): අයිතමය සෙට් එකේ නැතිනම් දෝෂයක් (Error) ඇති කරයි.
  • .discard(): අයිතමය සෙට් එකේ නැතිනම් දෝෂයක් ඇති නොකරයි.
fruits.remove("banana")
print(fruits) # ප්‍රතිඵලය: {'apple', 'cherry'}
fruits.discard("mango") # mango නැති නිසා දෝෂයක් ඇති නොවේ.

සෙට් වල ප්‍රධානතම භාවිතය

සෙට් එකක ප්‍රධානතම භාවිතයක් වන්නේ ලැයිස්තුවකින් (list) අනුපිටපත් ඉවත් කිරීමයි.

my_list = ["car", "bus", "train", "car", "van", "bus"]
print(f"Original list: {my_list}")

# 1. ලැයිස්තුව සෙට් එකක් බවට පරිවර්තනය කරන්න
unique_items_set = set(my_list)
print(f"Set with unique items: {unique_items_set}")

# 2. අවශ්‍ය නම්, නැවත ලැයිස්තුවක් බවට පත්කරගන්න
unique_list = list(unique_items_set)
print(f"List with unique items: {unique_list}")

ගණිතමය මෙහෙයුම් (Set Operations)

සෙට් මගින් ගණිතයේ කුලක (sets) වලට අදාළ මෙහෙයුම් පහසුවෙන් කළ හැක.

set_A = {1, 2, 3, 4}
set_B = {3, 4, 5, 6}

# Union (|): සෙට් දෙකෙහිම ඇති සියලුම අයිතම එකතු කරයි.
print(f"Union (A | B): {set_A | set_B}")

# Intersection (&): සෙට් දෙකටම පොදු අයිතම පමණක් ලබා දෙයි.
print(f"Intersection (A & B): {set_A & set_B}")

# Difference (-): පළමු සෙට් එකේ ඇති, නමුත් දෙවැනි සෙට් එකේ නැති අයිතම ලබා දෙයි.
print(f"Difference (A - B): {set_A - set_B}")

සුබ පැතුම්! ඔබ දැන් Python වල ප්‍රධාන දත්ත ව්‍යුහ හතරම ඉගෙනගෙන අවසන්: Lists, Tuples, Dictionaries, සහ Sets.