កំរង Tuple

នៅ​ក្នុង​ភាសា Python tuple គឺ​ជា​វត្ថុ​ម៉្យាង​ដែល​អាច​ត្រូវ​ប្រៀប​ប្រដូច​ទៅ​នឹង​កំរង​បើក​មួយ ដែល​នៅ​ក្នុង​មាន​វត្ថុ​ផ្សេង​ៗ​ទៀត​ជា​ច្រើន​ តំរៀប​ជួរ​គ្នា​តាម​លេខរៀង​ចាប់​ពី 0 ឡើង​ទៅ បើ​រាប់​ពី​ដើម​កំរង​ឡើង​ទៅ និង​មាន​លេខរៀង -1 ចុះ​មក​ បើ​រាប់​ពី​ចុង​កំរង​ចុះ​មក​វិញ​។ ដើម្បី​បង្កើត​កំរង tuple យើង​ត្រូវ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖

mytuple = (999, 324.33, "Python", True)

print(mytuple)
(999, 324.33, 'Python', True)

វត្ថុ​នៅ​ក្នុង​កំរង tuple គឺ​ជា​ element របស់​កំរង tuple ។ element ​ទាំងនោះ​អាច​ជា​វត្ថុ​មាន​ប្រភេទ​តែ​មួយ ឬ​ជា​វត្ថុ​មាន​ប្រភេទ​ខុស​គ្នា​។ ប្រការនេះ​ធ្វើ​អោយ​កំរង tuple ខុស​ពី string ដែល​ជា​ឃ្លា​ប្រយោគ​ទាំងឡាយ ពីព្រោះ​ឃ្លា​ប្រយោគ​ក៏​ជា​កំរង​បើក​មួយ​ដែរ ដែល​នៅ​ក្នុង​មាន element តែ​មួយ​ប្រភេទ ដែល​ជា​តួ​អក្សរ​។

មួយវិញទៀត កំរង tuple អាច​ត្រូវ​បង្កើត​ឡើង​ ដោយ​មិន​ចាំបាច់​មាន​សញ្ញា​រង្វង់​ក្រចក​នៅ​អម​សងខាង​ក៏​បាន​ដែរ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

mytuple = 999, 324.33, "Python", True

print(mytuple)
(999, 324.33, 'Python', True)

កំរង tuple អាច​មាន​ element ​មាន​ចំនួន​មិន​កំណត់ ពោល​គឺ​ចាប់​សូន្យ​រហូត​ដល់​អនន្ត​។ ក៏ប៉ុន្តែ ដើម្បី​បង្កើត​កំរង tuple មាន​ element ​តែ​មួយ យើង​ចាំបាច់​ត្រូវ​ប្រើប្រាស់​សញ្ញា​ក្បៀស ដូច​ខាង​ក្រោម​នេះ៖

mytuple = (1000,)
myinteger = (1000)

print(mytuple)
print(myinteger)
(1000,)
1000

ដូចនេះ​យើង​ឃើញ​ថា បើ​យើង​មិន​ប្រើ​សញ្ញា​ក្បៀស​ទេ គ្រប់​ការសាកល្បង​បង្កើត​កំរង tuple មាន​ element ​តែ​មួយ គឹ​ជា​ការបង្កើត​វត្ថុ​ទោល​ទៅ​វិញ​ទេ។ ម៉្យាង​ទៀត នៅ​ក្នុង​កម្មវិធី​ផ្សេង​ៗ យើង​អាច​ដឹង​ថា​វត្ថុ​ណាមួយ​ជា​កំរង tuple មាន​ element ​តែ​មួយ ឬ​ជា​វត្ថុ​ទោល គឺ​ដោយ​សារ​តែ​កំរង tuple មាន​ element តែ​មួយ មាន​សញ្ញា​ក្បៀស​នៅ​ជិត​នោះ​។

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

tuple1 = (100, 1.5, "sale", True)
tuple2 = (200, 3.14, False)

print(tuple1 + tuple2)
(100, 1.5, 'sale', True, 200, 3.14, False)

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

tuple1 = (100, 1.5, "sale", True)

print(tuple1 * 3)
(100, 1.5, 'sale', True, 100, 1.5, 'sale', True, 100, 1.5, 'sale', True)

កំរង tuple ក៏​អាច​ត្រូវ​យក​ទៅ​ធ្វើ​ប្រមាណវិធី logical oeration បាន​ដែរ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

mytuple = (100, 1.5, "sale", True)
empty_tuple = ()

print(mytuple and empty_tuple)
print(mytuple or empty_tuple)
print(not mytuple)
print(not empty_tuple)
()
(100, 1.5, 'sale', True)
False
True

ជា​លទ្ធផល យើង​សង្កេត​ឃើញ​ថា នៅ​ក្នុង​ការធ្វើ​ប្រមាណវិធី logical oeration កំរង tuple ទទេ សមមូល​នឹង​ False ។

លើស​ពី​នេះទៀត យើង​ក៏​អាច​យក​កំរង tuple ផ្សេង​ៗ​មក​ធ្វើ​ប្រមាណវិធី​ប្រៀបធៀប​បាន​ដែរ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

tuple1 = (100, 1.5, "sale", True)
tuple2 = (200, 0.35, 20, 73)

print(tuple1 == tuple2)
print(tuple1 != tuple2)
print(tuple1 > tuple2)
print(tuple1 < tuple2)
print(tuple1 >= tuple2)
print(tuple1 <= tuple2)
False
True
False
True
False
True

ប្រមាណវិធី​ប្រៀបធៀប​រវាង​កំរង tuple ផ្សេង​ៗ គឺ​ជា​ប្រមាណវិធី​ប្រៀបធៀប​តាម​របៀប​វចនានុក្រម​។ បានន័យថា element​នៅ​ខាង​ឆ្វេង​គេ​បង្អស់​នៃ​កំរង tuple និមួយ​ៗ ត្រូវ​បាន​យក​មក​ប្រៀបធៀប​គ្នា ហើយ​បើ​ element ​ណា​ធំ​ឬ​តូច​ជាង​គេ កំរង tuple ដែល​មាន​ element ​នោះ ត្រូវ​ចាត់ទុក​ថា ជា​កំរង tuple ដែល​ធំ​ឬ​តូច​ជាង​គេ​។ តែ​បើ​ element ​ទាំងនោះ​ស្មើ​គ្នា​វិញ element បន្ទាប់​មក​ទៀត​នឹងត្រូវ​យក​មក​ប្រៀបធៀប​។ ហើយ​បើ​ element ទាំងអស់​ស្មើ​គ្នា កំរង tuple ទាំងនោះ​ត្រូវ​ចាត់ទុក​ថា ជា​កំរង tuple ដូច​គ្នា​។​

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

mytuple = (200, 0.35, 20, 73)
sale = 73

print(sale in mytuple)
print(sale not in mytuple)
True
False

យើង​អាច​យក​កំរង tuple ទាំងឡាយ មក​ធ្វើ​ប្រមាណវិធី indentification operation ដូច​ខាង​ក្រោម​នេះ៖

tuple1 = (200, 0.35, 20, 73)
tuple2 = (100, 1.5, 400, 3.14)

print(tuple1 is tuple2)
print(tuple1 is not tuple2)
False
True

ចំណែក​ឯការធ្វើ​ប្រមាណវិធី indexing operation ជា​មួយ​កំរង tuple វិញ អាច​ត្រូវ​ធ្វើ​ឡើង​ដូច​ខាង​ក្រោម​នេះ៖

mytuple = (200, 0.35, 20, 73)

print(mytuple[2])
20

យើង​អាច​យក​កំរង tuple ទាំងឡាយ​មក​ធ្វើ​ប្រមាណវិធី slicing operation ដូច​ខាង​ក្រោម​នេះ៖
mytuple = (100, 10.5, "profit", True, 200, "sale", False)

print(mytuple[1:7])
print(mytuple[1:])
print(mytuple[:7])
print(mytuple[:])
print(mytuple[1:7:2])
(10.5, 'profit', True, 200, 'sale', False)
(10.5, 'profit', True, 200, 'sale', False)
(100, 10.5, 'profit', True, 200, 'sale', False)
(100, 10.5, 'profit', True, 200, 'sale', False)
(10.5, True, 'sale')