ស្រង់ ជំនួស និងបំប្លែងធាតុជាក់លាក់នៃបញ្ជី Python (អារេ)

អាជីវកម្ម

ដើម្បីបង្កើតបញ្ជីថ្មីនៅក្នុង 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) ហើយ​ក្លាយ​ជា​ធាតុ​នៃ​បញ្ជី​ថ្មី។ “ប្រសិនបើកន្សោមតាមលក្ខខណ្ឌ” អាចត្រូវបានលុបចោល ក្នុងករណីនេះកន្សោមត្រូវបានអនុវត្តចំពោះធាតុទាំងអស់។

សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិតបន្ថែម រួមទាំងកំណត់ចំណាំការយល់ច្បាស់ក្នុងបញ្ជីដែលបានដាក់។

អនុវត្តដំណើរការទៅធាតុទាំងអស់នៃបញ្ជី

ឧទាហរណ៍ ប្រសិនបើអ្នកចង់អនុវត្តដំណើរការមួយចំនួនចំពោះធាតុទាំងអស់នៃបញ្ជី សូមពណ៌នាអំពីដំណើរការដែលចង់បាននៅក្នុងកន្សោមការយល់បញ្ជីខាងលើ។

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]