កំរង List

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

ដើម្បី​បង្កើត​កំរង list យើង​ត្រូវ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ

mylist = [100, 10.5, "profit", True, 200, "sale", False]

print(mylist)
[100, 10.5, 'profit', True, 200, 'sale', False]

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

list1 = [100, 10.5, "profit", True, 200, "sale", False]
list2 = [200, False, 3.14]

print(list1 + list2)
[100, 10.5, 'profit', True, 200, 'sale', False, 200, False, 3.14]

យើង​ក៏​អាច​យក​កំរង list ផ្សេង​ៗ​មក​ធ្វើ​ប្រមាណវិធី repetition operation បាន​ដែរ​។

list = [100, 10.5, "profit", True]

print(list * 3)
[100, 10.5, 'profit', True, 100, 10.5, 'profit', True, 100, 10.5, 'profit', True]

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

list1 = [100, 10.5, "profit", True]
list2 = []

print(list1 and list2)
print(list1 or list2)
print(not list1)
print(not list2)
[]
[100, 10.5, 'profit', True]
False
True

នៅ​ក្នុង​ការធ្វើ​ប្រមាណវិធី logical opeartion កំរង list ទទេ សមមូល​នឹង False ។

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

list1 = [100, 10.5, 300, 0.33]
list2 = [200, 0.5, 50 ]

print(list1 == list2)
print(list1 != list2)
print(list1 > list2)
print(list1 < list2)
print(list1 >= list2)
print(list1 <= list2)
False
True
False
True
False
True

ដូចគ្នា​នឹង​កំរង tuple ដែរ ប្រមាណវិធី​ប្រៀបធៀប​រវាង​កំរង list ផ្សេង​ៗ គឺ​ជា​ប្រមាណវិធី​ប្រៀបធៀប​តាម​របៀប​វចនានុក្រម​។

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

list = [100, 10.5, "sale", 300, 0.33]
item = "sale"

print(item in list)
print(item not in list)
True
False

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

list1 = [100, 10.5, "sale", 300, 0.33]
list2 = list1
list3 = [100, 10.5, "sale", 300, 0.33]

print(list1 is list2)
print(list1 is list3)
print(list is not list3)
True
False
True

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

list = [100, 10.5, "sale", 300, 0.33]

print(list[2])
list[2] = "buy"
print(list[2])
sale
buy

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

នៅ​ក្នុង​ភាសា Python គ្រប់​វត្ថុ​ទាំងឡាយ​ណា ដែល​មាន​ element អាច​ត្រូវ​ដោះដូរ​បាន គឺ​ជា​វត្ថុ mutable និង​គ្រប់​វត្ថុ​ទាំងឡាយ​ណា​ដែល​មាន element មិន​អាច​ត្រូវ​ដោះដូរ​បាន គឺ​ជា​វត្ថុ immutable ។ ជាលទ្ធផល វត្ថុ​ដែល​ជា លេខ boolean, None, string និង កំរង tuple គឺ​ជា​វត្ថុ immutable ។ ចំណែក​ឯ​កំរង list វិញ គឺ​ជា​វត្ថុ mutable ។

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

list = [100, 1.5, "name", True, 200, 3.5, "profit", "last name"]

print(list[1:7])
print(list[1:])
print(list[:7])
print(list[:])
print(list[1:7:2])
[1.5, 'name', True, 200, 3.5, 'profit']
[1.5, 'name', True, 200, 3.5, 'profit', 'last name']
[100, 1.5, 'name', True, 200, 3.5, 'profit']
[100, 1.5, 'name', True, 200, 3.5, 'profit', 'last name']
[1.5, True, 3.5]

ដោយ​ហេតុ​ថា កំរង list គឺ​ជា​វត្ថុ​ដែល​មាន​លក្ខណៈ​ជា mutable ដូចនេះ​យើង​អាច​យក​វា​មក​ធ្វើ​ប្រមាណ​វិធី slicing operation ដើម្បី​ដោះដូរ​ element របស់​វា​មួយ​ចំនួន​ដូច​ខាង​ក្រោម​នេះ៖

list = [100, 1.5, "name", True, 200, 3.5, "profit", "last name"]

list[1:7] = [1, 2, 3, 4, 5, 6]
print(list)
[100, 1, 2, 3, 4, 5, 6, 'last name']

វត្ថុ​ដែល​ត្រូវ​យក​ទៅ​ជំនួស​បណ្តា element នៅ​ក្នុង​កំរង list អាច​ជា​វត្ថុ​ដែល​ជា element របស់​កំរង tuple ក៏​បាន​ដែរ​។

list = [100, 1.5, "name", True, 200, 3.5, "profit", "last name"]

list[1:7] = (1, 2, 3, 4, 5, 6)
print(list)
[100, 1, 2, 3, 4, 5, 6, 'last name']

ក្រៅ​ពី​ការដោះដូរ​និង​ឬ​បន្ថែម​បន្ថយ element នៃ​កំរង list យើង​ក៏​អាច​លុប element ចេញ​ពី​កំរង list បាន​ដែរ ដោយ​ប្រើប្រាស់​បញ្ជា del

list = [100, 1.5, "name", True, 200, 3.5, "profit", "last name"]

list[1:7] = (1, 2, 3, 4, 5, 6)
print(list)
del list[2]
print(list)
del list[1:7]
print(list)
[100, 1, 2, 3, 4, 5, 6, 'last name']
[100, 1, 3, 4, 5, 6, 'last name']
[100]