လွယ်လွယ်ပြောရရင် Set ဆိုတာ Python မှာ ပစ္စည်းတွေ စုထားလို့ရတဲ့ ပုံးတစ်ပုံးပါ။ ဒါပေမယ့် ထူးခြားတာက ထပ်နေတဲ့ ပစ္စည်းကို သူက အလိုလို ဖျက်ထုတ်ပေးတယ်။ List ထဲမှာ “apple” နှစ်ခါ ထည့်ရင် နှစ်ခုလုံး ရှိတယ်။ Set ထဲမှာတော့ တစ်ခုပဲ ကျန်တယ်။

အိတ်တစ်လုံးနဲ့ စဉ်းစားကြည့်ပါ။

ကိုယ်က ခရီးသွားဖို့ အိတ်ထဲ ပစ္စည်းတွေ ပစ်ထည့်နေတယ်။ စာရင်းမလုပ်ဘဲ စိတ်ထဲ ပေါ်တာတွေ လျှောက်ထည့်တော့ သွားတိုက်တံကို နှစ်ခါ ထည့်မိတယ်။ Set က အဲဒီလို မဖြစ်ဘူး။ သွားတိုက်တံ တစ်ချောင်း ရှိနေပြီးသား ဆိုရင် နောက်တစ်ချောင်း ထပ်ထည့်လည်း အိတ်ထဲမှာ တစ်ချောင်းပဲ ရှိမယ်။ ထည့်လိုက်တဲ့ အစဉ်လည်း သူ မှတ်ထားဘူး — ဘာတွေ ရှိလဲ ဆိုတာပဲ အရေးကြီးတယ်။

Python မှာ ဒီလို ရေးတယ် –


fruits = {"apple", "banana", "apple", "orange"}
print(fruits)

ရလဒ်က {"apple", "banana", "orange"} ပဲ ထွက်လာမယ်။ “apple” က တစ်ခုတည်း ဖြစ်သွားတယ်။ ထည့်တဲ့ အစဉ်အတိုင်း ပြန်ထွက်မလာဘူးဆိုတာလည်း မှတ်ထားပါ — Set က အစဉ်ကို အာမ မခံဘူး။

ဘယ်နေရာမှာ အသုံးဝင်လဲ ဆိုတော့ ထပ်နေတာတွေ ဖျက်ချင်တဲ့ အခါတိုင်းပဲ။ ဥပမာ ကိုယ့်ဆီမှာ email စာရင်း တစ်ခု ရှိတယ်၊ လူတစ်ယောက်တည်းက email နှစ်ခါပါတယ်။


emails = ["a@gmail.com", "b@gmail.com", "a@gmail.com", "c@gmail.com"]
unique = list(set(emails))
print(unique)

တစ်ကြောင်းတည်းနဲ့ ထပ်နေတာတွေ ရှင်းသွားတယ်။ ဒါ Set ရဲ့ အထင်ရှားဆုံး အသုံးပဲ။

Set မှာ နောက်ထပ် လုပ်နိုင်တာတွေ ရှိသေးတယ် –

ရှိမရှိ စစ်တာ မြန်တယ် — "apple" in fruits လို့ စစ်ရင် List ထက် အများကြီး မြန်တယ်၊ အထူးသဖြင့် data များလာရင်
နှစ်ခု ပေါင်းတာ — a | b ဆိုရင် နှစ်ခုလုံးထဲက ပစ္စည်း အကုန် ရတယ်
တူတာပဲ ယူတာ — a & b ဆိုရင် နှစ်ခုလုံးမှာ ပါတဲ့ ပစ္စည်းတွေပဲ ရတယ်
ကွာခြားတာ ရှာတာ — a - b ဆိုရင် a မှာ ရှိပြီး b မှာ မရှိတာတွေ ရတယ်

ဥပမာ ကိုယ့် သူငယ်ချင်းနှစ်ယောက် ကြိုက်တဲ့ movie တွေ ယှဉ်ကြည့်ချင်တယ် ဆိုပါစို့။ နှစ်ယောက်လုံး ကြိုက်တဲ့ movie ကို & နဲ့ ရှာလို့ရတယ်။ စာသင်ခန်းထဲက ဥပမာ မဟုတ်ဘူး၊ တကယ် အလုပ်မှာ သုံးရတဲ့ ပုံစံပဲ။

သတိထားရမှာ နှစ်ခုရှိတယ်။ တစ်ခုက Set ထဲကို List ထည့်လို့ မရဘူး — မပြောင်းလဲတဲ့ (immutable) အရာတွေပဲ ထည့်လို့ရတယ်။ နောက်တစ်ခုက ဘာမှ မရှိတဲ့ Set အလွတ်ကို {} လို့ ရေးလို့ မရဘူး — အဲဒါက Dictionary အလွတ် ဖြစ်သွားမယ်။ set() လို့ ရေးရတယ်။ ဒီနှစ်ခုက beginner တွေ မကြာခဏ မှားတတ်တယ်။

List နဲ့ Set ဘယ်ဟာ သုံးမလဲ? အစဉ်အရေးကြီးရင် အပိုထပ်ထည့်ဖို့ လိုရင် List သုံးပါ။ ထပ်နေတာ မလိုချင်ဘူး၊ ရှိမရှိ မြန်မြန် စစ်ချင်တယ် ဆိုရင် Set က အဖြေပဲ။ ကိရိယာတိုင်းမှာ သူ့နေရာနဲ့ သူ ရှိတာပေါ့။ 🙂