សំណុំ Set

សំណុំ set គឺ​ជា​វត្ថុ​មាន​ប្រភេទ​ជា container ដែល​នៅ​ក្នុង​នោះ​អាច​មាន​វត្ថុ​ជា​ច្រើន​ទៀត​។ ហើយ​ការបង្កើត​សំណុំ set ត្រូវ​ធ្វើ​ឡើង​ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}

print(week_days)
{'Wednesday', 'Thursday', 'Friday', 'Sunday', 'Monday', 'Saturday', 'Tuesday'}

វត្ថុ​នៅ​ក្នុង​សំណុំ set គឺ​ជា​ element ​របស់​សំណុំ set ។ element ទាំងនោះ​គ្មាន​លេខរៀង​ច្បាស់​លាស់​ទេ គឺ​វា​អាច​ផ្លាស់​ប្តូរ​ទីតាំង​បាន​គ្រប់​ពេល​វេលា​។ ម៉្យាងទៀត element របស់​សំណុំ set ត្រូវ​តែ​ជា​វត្ថុ immutable ។ ដូចនេះ យើង​មិន​អាច​យក​កំរង list មក​ធ្វើ​ជា element របស់​សំណុំ set បាន​ឡើយ​។ ផ្ទុយទៅវិញ សំណុំ set គឺ​ជា​វត្ថុ mutable បាន​ន័យ​ថា element នៅ​ក្នុង​សំណុំ set អាច​ត្រូវ​ជំនួស​ដោយ​វត្ថុ immutable ។ លើស​ពី​នេះ​ទៀត element នៅ​ក្នុង​សំណុំ set មិន​អាច​ដូច​គ្នាបាន​ឡើយ ព្រោះ​ element ដូច​គ្នា​នឹង​ត្រូវ​បង្រួម​មក​នៅ​មាន​តែ​មួយ​ ជា​ស្វ័យប្រវត្តិ​។

នៅ​ក្នុង​ភាសា Python ដែល​ហៅ​ថា​ប្រមាណវិធី differentiation operation គឺ​ជា​ប្រមាណវិធី​ទាំងឡាយ​ណា ដែល​នៅ​ក្នុង​នោះ​មាន​ការប្រើប្រាស់ operator - ដើម្បី​ចំលង​យក​សំណុំ set ណាមួយ មក​ដក element ដូច​ទៅ​នឹង element របស់​សំណុំ set ​ណា​មួយ​ទៀត​ចេញ ក្នុង​គោលបំណង​បង្កើត​សំណុំ set មួយ​ថ្មី​ទៀត​។

យើង​អាច​យក​សំណុំ set ផ្សេង​ៗ​មក​ធ្វើ​ប្រមាណវិធី differentiation operation ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
holidays = {'Saturday', 'Sunday'}

working_days = week_days - holidays
print(working_days)
{'Tuesday', 'Wednesday', 'Monday', 'Thursday', 'Friday'}

នៅ​ក្នុង​ភាសា Python ដែល​ហៅ​ថា​ប្រមាណវិធី union operation គឺ​ជា​ប្រមាណវិធី​ទាំងឡាយ​ណា ដែល​នៅ​ក្នុង​នោះ​មាន​ការប្រើប្រាស់​ប្រមាណសញ្ញា | ដើម្បី​ចំលង​យក element នៅ​ក្នុង​សំណុំ set ចំនួន​ពីរ មក​ប្រជុំ​គ្នា​បង្កើត​បាន​ជា​សំណុំ set មួយ​ថ្មី​ទៀត​។

យើង​អាច​យក​សំណុំ​ផ្សេង​ៗ​មក​ធ្វើ​ប្រមាណវិធីប្រជុំ​ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
years = {'2020', '2021'}

week_days_years = week_days | years
print(week_days_years)
{'Tuesday', '2021', 'Saturday', 'Wednesday', '2020', 'Thursday', 'Friday', 'Sunday', 'Monday'}

នៅ​ក្នុង​ប្រមាណវិធី union operation, element ទាំងអស់​ដែល​ត្រូវ​បាន​ចំលង​មក​ពី​សំណុំ​ set ទាំង​ពីរ ត្រូវ​ដាក់​បញ្ចូល​គ្នា​បង្កើត​ជា​សំណុំ set ថ្មី​មួយ​ទៀត តែ​ចំពោះ​ element ដូច​គ្នា​ គឺ​ត្រូវ​ជ្រើស​រើស​យក​តែ​មួយ​ប៉ុណ្ណោះ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
years_holidays = {'2020', '2021', 'Saturday', 'Sunday'}

week_days_years = week_days | years_holidays
print(week_days_years)
{'Sunday', 'Friday', 'Monday', 'Saturday', 'Wednesday', '2021', '2020', 'Tuesday', 'Thursday'}

ដោយ​ហេតុ​ថា នៅ​ក្នុង​សំណុំ set , element ទាំងឡាយ​មិន​អាច​ដូច​គ្នា​បាន កត្តា​នេះ​ធ្វើ​អោយ​សំណុំ set មាន​លក្ខណៈ​ខុស​ពី​កំរង​ផ្សេង​ៗ​ទៀត​។ element ​នៅ​ក្នុង​កំរង អាច​ជា​វត្ថុ​ប្រភេទ​ណា​ក៏​បាន​ដែរ ហើយ​ element ​ទាំងនោះ​អាច​ដូច​ៗ​គ្នា​ជា​ច្រើន​ទៀត​។ យ៉ាងណាម៉ិញ ភាព​ខុស​គ្នា​រវាង element ទាំងឡាយ​នៅ​ក្នង​កំរង គឺ​លេខ​រៀង​របស់​វា ដែល​ជា​លំដាប់លំដោយ​សំរាប់​សំគាល់ element ទាំងនោះ​នៅ​ក្នុង​កំរង​។ ផ្ទុយ​មក​វិញ element នៅ​ក្នុង​សំណុំ set គ្មាន​លេខរៀង​ឬ​លំដាប់​ថ្នាក់​ច្បាស់​លាស់​ឡើយ ហើយ​ទីតាំង​របស់​វា អាច​ត្រូវ​ប្រែប្រួល​បាន​គ្រប់​ពេលវេលា​។

នៅ​ក្នុង​ភាសា Python ដែល​ហៅ​ថាប្រមាណវិធី intersection operation គឺ​ជា​ប្រមាណវិធី​ទាំងឡាយ​ណា ដែល​នៅ​ក្នុង​នោះ​មាន​ការប្រើប្រាស់ operator & ដើម្បី​ចំលង​យក​ element ​ដូច​គ្នា​នៅ​ក្នុង​សំណុំ set ពីរ​មក​បង្កើត​ជា​សំណុំ set ថ្មី​មួយ​ទៀត​។

យើង​អាច​យក​សំណុំ set ផ្សេង​ៗ​មក​ធ្វើ​ប្រមាណវិធី intersection operation ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
years_holidays = {'2020', '2021', 'Saturday', 'Sunday'}

holidays = week_days & years_holidays
print(holidays)
{'Sunday', 'Saturday'}

នៅ​ក្នងុ​ភាសា Python ដែល​ហៅ​ថា​ប្រមាណវិធី symmetric difference គឺ​ជា​ប្រមាណវិធី​ទាំងឡាយ​ណា​ដែល​ប្រើប្រាស់ operator ^ ដើម្បី​ចំលង​យក element ខុស​គ្នា​នៅ​ក្នុង​សំណុំ set ពីរ មក​បង្កើត​ជា​សំណុំ set ថ្មី​មួយ​ទៀត​។

យើង​អាច​យក​សំណុំ set ផ្សេង​ៗ មក​ធ្វើ​ប្រមាណវិធី symmetric difference ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
years_holidays = {'2020', '2021', 'Saturday', 'Sunday'}

working_days_years = week_days ^ years_holidays
print(working_days_years)
{'Tuesday', 'Wednesday', '2021', 'Friday', '2020', 'Thursday', 'Monday'}

យើង​អាច​យក​សំណុំ set ផ្សេង​ៗ​មក​ធ្វើ​ប្រមាណវិធី logical operaion ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
empty_set = {}

print(empty_set and week_days)
print(empty_set or week_days)
print(not empty_set)
print(not week_days)
{}
{'Monday', 'Sunday', 'Friday', 'Thursday', 'Saturday', 'Wednesday', 'Tuesday'}
True
False

យើង​អាច​យក​សំណុំ set ផ្សេង​ៗ មក​ធ្វើ​ប្រមាណវិធី​ប្រៀបធៀប​ ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
holidays = {'Saturday', 'Sunday'}

print(week_days == holidays)
print(week_days != holidays)
print(week_days > holidays)
print(week_days < holidays)
print(week_days >= holidays)
print(week_days <= holidays)
False
True
True
False
True
True
False

ប្រមាណវិធីប្រៀបធៀប​រវាង​សំណុំ set មិន​មែន​ជា​ប្រមាណវិធី​ប្រៀបធៀប​តាម​របៀប​វចនានុក្រម​ឡើយ​។ ជាក់ស្តែង ការធ្វើ​ប្រមាណវិធី​ប្រៀបធៀប ដោយ​ប្រើប្រាស់​ operator > មាន​ដូចជា week_days > holidays គឺ​ជា​ការធ្វើ​ប្រមាណវិធី​ប្រៀបធៀប ដើម្បី​ពិនិត្យ​មើល​ថា តើ​សំណុំ set ឈ្មោះ week_day គឺ​ជា superset ​នៃសំណុំ​ set ឈ្មោះ holidays មែន​ដែរ​ឬ​យ៉ាង​ណា​។

សំណុំ set ឈ្មោះ week_days ជា superset នៃ​សំណុំ set ឈ្មោះ holidays មាន​ន័យ​ថា សំណុំ set ឈ្មោះ week_days មាន​ element ច្រើន​ជាង​សំណុំ set ឈ្មោះ holidays ហើយ​ element ទាំងអស់​មាន​នៅ​ក្នុង​សំណុំ set ឈ្មោះ holidays មាន​នៅ​ក្នុង​សំណុំ set ឈ្មោះ week_days ។ ក្នុង​ករណី​នេះ សំណុំ set ឈ្មោះ holidays ត្រូវ​ចាត់​ទុក​ថា​តូច​ជាង​សំណុំ set ឈ្មោះ week_days និង​ជា​ subset នៃ​សំណុំ set ឈ្មោះ week_days​។ /p>

យើង​អាច​យក​សំណុំ set ផ្សេង​ៗ មក​ធ្វើ​ប្រមាណវិធី membership operation ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
red_day = 'Sunday'

print(red_day in week_days)
print(red_day not in week_days)
False
True

យើង​អាច​យក​សំណុំ set ផ្សេង​ៗ មក​ធ្វើ​ប្រមាណវិធី indentification opeartion ដូច​ខាង​ក្រោម​នេះ៖

week_days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}
seven_day = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'}

print(week_days is seven_day)
print(week_days is not seven_day)
False
True