ដើម្បីបង្កើតបញ្ជីថ្មីនៅក្នុង Python ដោយការស្រង់ចេញ ឬលុបតែធាតុទាំងនោះនៃបញ្ជីដែលមានស្រាប់ (អារេ) ដែលបំពេញលក្ខខណ្ឌជាក់លាក់ ឬដោយការធ្វើការជំនួស ឬការបំប្លែង សូមប្រើការយល់បញ្ជី។
ខាងក្រោមនេះត្រូវបានពន្យល់នៅទីនេះ រួមជាមួយនឹងកូដគំរូ។
- ទម្រង់មូលដ្ឋាននៃការយល់ឃើញបញ្ជី
- អនុវត្តដំណើរការទៅធាតុទាំងអស់នៃបញ្ជី
- ស្រង់ចេញ និងលុបធាតុចេញពីបញ្ជីដែលបំពេញតាមលក្ខណៈវិនិច្ឆ័យ
- ជំនួស ឬបំប្លែងធាតុដែលបំពេញលក្ខខណ្ឌនៃបញ្ជី
សូមមើលអត្ថបទខាងក្រោមសម្រាប់ឧទាហរណ៍ជាក់លាក់នៃបញ្ជីខ្សែអក្សរ។
វាក៏អាចធ្វើទៅបានដើម្បីស្រង់ចេញដោយចៃដន្យនូវធាតុដែលមិនបំពេញតាមលក្ខណៈវិនិច្ឆ័យ។
ចំណាំថាបញ្ជីអាចរក្សាទុកប្រភេទទិន្នន័យផ្សេងៗគ្នា ហើយខុសគ្នាយ៉ាងតឹងរ៉ឹងពីអារេ។ ប្រសិនបើអ្នកចង់គ្រប់គ្រងអារេនៅក្នុងដំណើរការដែលទាមទារទំហំអង្គចងចាំ និងអាសយដ្ឋានអង្គចងចាំ ឬដំណើរការជាលេខនៃទិន្នន័យធំ សូមប្រើអារេ (បណ្ណាល័យស្តង់ដារ) ឬ NumPy ។
បញ្ជីខាងក្រោមគឺជាឧទាហរណ៍មួយ។
l = list(range(-5, 6))
print(l)
# [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
ទម្រង់មូលដ្ឋាននៃការយល់ឃើញបញ្ជី
នៅពេលបង្កើតបញ្ជីថ្មីពីបញ្ជីមួយ ការយល់ក្នុងបញ្ជីគឺងាយស្រួលសរសេរជាងសម្រាប់រង្វិលជុំ។
[expression for any variable name in iterable object if conditional expression]
កន្សោមត្រូវបានអនុវត្តទៅនឹងធាតុដែលបំពេញកន្សោមតាមលក្ខខណ្ឌនៃវត្ថុដែលអាចធ្វើបានវិញបាន (ដូចជាបញ្ជី ឬ tuple) ហើយក្លាយជាធាតុនៃបញ្ជីថ្មី។ “ប្រសិនបើកន្សោមតាមលក្ខខណ្ឌ” អាចត្រូវបានលុបចោល ក្នុងករណីនេះកន្សោមត្រូវបានអនុវត្តចំពោះធាតុទាំងអស់។
សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិតបន្ថែម រួមទាំងកំណត់ចំណាំការយល់ច្បាស់ក្នុងបញ្ជីដែលបានដាក់។
- ពាក់ព័ន្ធ៖របៀបប្រើការយល់បញ្ជី Python
អនុវត្តដំណើរការទៅធាតុទាំងអស់នៃបញ្ជី
ឧទាហរណ៍ ប្រសិនបើអ្នកចង់អនុវត្តដំណើរការមួយចំនួនចំពោះធាតុទាំងអស់នៃបញ្ជី សូមពណ៌នាអំពីដំណើរការដែលចង់បាននៅក្នុងកន្សោមការយល់បញ្ជីខាងលើ។
l_square = [i**2 for i in l]
print(l_square)
# [25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]
l_str = [str(i) for i in l]
print(l_str)
# ['-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5']
វាអាចត្រូវបានប្រើដើម្បីបំប្លែងរវាងបញ្ជីលេខ និងបញ្ជីខ្សែអក្សរ។
ស្រង់ចេញ និងលុបធាតុចេញពីបញ្ជីដែលបំពេញតាមលក្ខណៈវិនិច្ឆ័យ
ប្រសិនបើធាតុត្រូវបានជ្រើសរើសដោយកន្សោមតាមលក្ខខណ្ឌ នោះវាមិនត្រូវបានដំណើរការដោយកន្សោមទេ ដូច្នេះវាត្រូវការទម្រង់ដូចខាងក្រោម
[variable name for variable name in original list if conditional expression]
បញ្ជីថ្មីត្រូវបានបង្កើតឡើងដែលមានតែធាតុដែលបំពេញលក្ខខណ្ឌ (ធាតុដែលកន្សោមតាមលក្ខខណ្ឌពិត) ត្រូវបានដកចេញ។
l_even = [i for i in l if i % 2 == 0]
print(l_even)
# [-4, -2, 0, 2, 4]
l_minus = [i for i in l if i < 0]
print(l_minus)
# [-5, -4, -3, -2, -1]
ប្រសិនបើ “ប្រសិនបើកន្សោមតាមលក្ខខណ្ឌ” ត្រូវបានកំណត់ទៅជា “ប្រសិនបើមិនមែនជាកន្សោមតាមលក្ខខណ្ឌ” វានឹងក្លាយជាការបដិសេធ ហើយមានតែធាតុដែលមិនបំពេញលក្ខខណ្ឌ (ធាតុដែលកន្សោមតាមលក្ខខណ្ឌមិនពិត) អាចត្រូវបានជ្រើសរើស និងស្រង់ចេញ។ ម្យ៉ាងវិញទៀត បញ្ជីថ្មីត្រូវបានបង្កើតចេញពីធាតុដែលបំពេញលក្ខខណ្ឌត្រូវបានដកចេញ។
l_odd = [i for i in l if not i % 2 == 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]
l_plus = [i for i in l if not i < 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]
ជាការពិតណាស់ លទ្ធផលដូចគ្នាត្រូវបានទទួលដោយការបញ្ជាក់កន្សោមលក្ខខណ្ឌសមមូលដោយមិនប្រើមិនប្រើ។
l_odd = [i for i in l if i % 2 != 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]
l_plus = [i for i in l if i >= 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]
ផ្នែកកន្សោមតាមលក្ខខណ្ឌអាចជាលក្ខខណ្ឌច្រើន។ លេខអវិជ្ជមានក៏អាចប្រើបានដែរ។
l_minus_or_even = [i for i in l if (i < 0) or (i % 2 == 0)]
print(l_minus_or_even)
# [-5, -4, -3, -2, -1, 0, 2, 4]
l_minus_and_odd = [i for i in l if (i < 0) and not (i % 2 == 0)]
print(l_minus_and_odd)
# [-5, -3, -1]
ជំនួស ឬបំប្លែងធាតុដែលបំពេញលក្ខខណ្ឌនៃបញ្ជី
នៅក្នុងឧទាហរណ៍នៃការទាញយកធាតុខាងលើ ធាតុដែលមិនបំពេញលក្ខខណ្ឌត្រូវបានដកចេញ។
ប្រសិនបើអ្នកចង់ធ្វើការជំនួស ការបំប្លែង។ល។ តែលើធាតុដែលបំពេញលក្ខខណ្ឌ សូមអនុវត្តប្រតិបត្តិករ ternary ទៅផ្នែកកន្សោមនៃកំណត់ចំណាំនៃបញ្ជី។
នៅក្នុង Python ប្រតិបត្តិករ ternary អាចត្រូវបានសរសេរដូចខាងក្រោម
True Value if Conditional Expression else False Value
a = 80
x = 100 if a > 50 else 0
print(x)
# 100
b = 30
y = 100 if b > 50 else 0
print(y)
# 0
វាស្មុគ្រស្មាញបន្តិច ប៉ុន្តែការរួមផ្សំនៃបញ្ជីការយល់ឃើញក្នុងបញ្ជី និងប្រតិបត្តិករ ternary មានដូចខាងក្រោម។
[True Value if Conditional Expression else False Value for any variable name in original list]
ផ្នែកដែលរុំព័ទ្ធក្នុងវង់ក្រចកគឺជាប្រតិបត្តិករ ternary (វង់ក្រចកមិនចាំបាច់នៅក្នុងកូដពិតប្រាកដទេ)។
[(True Value if Conditional Expression else False Value) for any variable name in original list]
ប្រសិនបើឈ្មោះអថេរណាមួយត្រូវបានសរសេរជាតម្លៃពិត ឬមិនពិត តម្លៃនៃធាតុដើមត្រូវបានប្រើប្រាស់។ ប្រសិនបើកន្សោមត្រូវបានសរសេរ ដំណើរការនៃកន្សោមនោះត្រូវបានអនុវត្ត។
l_replace = [100 if i > 0 else i for i in l]
print(l_replace)
# [-5, -4, -3, -2, -1, 0, 100, 100, 100, 100, 100]
l_replace2 = [100 if i > 0 else 0 for i in l]
print(l_replace2)
# [0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 100]
l_convert = [i * 10 if i % 2 == 0 else i for i in l]
print(l_convert)
# [-5, -40, -3, -20, -1, 0, 1, 20, 3, 40, 5]
l_convert2 = [i * 10 if i % 2 == 0 else i / 10 for i in l]
print(l_convert2)
# [-0.5, -40, -0.3, -20, -0.1, 0, 0.1, 20, 0.3, 40, 0.5]