List Comprehension

List Comprehension គឺ​ជា​កំរង list ម៉្យាង​មាន​សណ្ឋាន​ជា​រូបមន្ត​សំរាប់​បង្កើត​កំរង list ធម្មតា​ថ្មី​ៗ​ទៀត​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

newList = [obj + 10 for obj in [1, 2, 3]]
print(newList)
[11, 12, 13]

កម្មវិធី​ខាង​លើ​នេះ អាច​ត្រូវ​សរសេរ​តាម​របៀប​ធម្មតា​ដូច​ខាង​ក្រោម​នេះ៖

newList = []
for obj in (1, 2, 3):
    newList.append(obj + 10)

print(newList)
[11, 12, 13]

នៅ​ក្នុង​ការបង្កើត list comprehension ក្រៅ​ពី​ expression យើង​ក៏​អាច​ប្រើ​ប្រាស់ function ផ្សេង​ៗ​ទៀត​បាន​ដែរ សំរាប់​បង្កើត​កំរង​ list ថ្មី​ៗ​ទៀត​។

def sum(obj):
    return obj + 10

newList = [sum(obj) for obj in (1, 2, 3)]
print(newList)
[11, 12, 13]

លើស​ពី​នេះ​ទៀត យើង​ក៏​អាច​ប្រើប្រាស់​ statement if មួយ​ទៀត នៅ​ក្នុង list comprehension ដើម្បី​ធ្វើ​ការជ្រើសរើស​ផ្សេង​ៗ នៅ​ក្នុង​ការបង្កើត element សំរាប់​កំរង list ថ្មី​។

def sum(obj):
    return obj + 10

newList = [sum(obj) for obj in (1, 2, 3) if obj != 2]
print(newList)
[11, 13]

មួយវិញទៀត function ដែល​ត្រូវ​យក​មក​ប្រើប្រាស់​នៅ​ក្នុង list comprehension អាច​ជា function ប្រភេទ​ណា​ក៏​បាន​ដែរ វា​អាច​ជា​ generator function ក៏​បាន​ដែរ​។

def sum(obj):
    return obj + 10

def genFunc():
    for obj in (1, 2, 3):
        yield obj

newList = [sum(obj) for obj in genFunc() if obj != 2]
print(newList)
[11, 13]