Python, បំបែកដើម្បីបំបែកខ្សែអក្សរដែលបំបែកដោយសញ្ញាក្បៀស ដកដកឃ្លា និងបំប្លែងទៅជាបញ្ជី

អាជីវកម្ម

នៅពេលបំបែកខ្សែអក្សរដែលបំបែកដោយសញ្ញាក្បៀសទៅក្នុងបញ្ជីក្នុង Python ប្រសិនបើមិនមានចន្លោះនៅចន្លោះទេ គ្រាន់តែបំបែក () នឹងដំណើរការ។ ប្រសិនបើមានចន្លោះ វាមានប្រយោជន៍ក្នុងការផ្សំវាជាមួយ strip() ដើម្បីដកដកឃ្លាបន្ថែមចេញ។ បន្ថែមពីលើនេះ ការប្រើប្រាស់កំណត់ចំណាំក្នុងបញ្ជី គឺជាវិធីដ៏ឆ្លាតវៃក្នុងការសរសេរ។

ក្នុង​ផ្នែក​នេះ យើង​ពន្យល់​ជា​បឋម​ដូច​តទៅ។

  • បំបែក​ខ្សែ​អក្សរ​ដោយ​មាន​អ្នក​កំណត់​ព្រំដែន​ដែល​បាន​បញ្ជាក់​ហើយ​ត្រឡប់​វា​ជា​បញ្ជីsplit()
  • ដកតួអក្សរបន្ថែមពីដើម និងចុងបញ្ចប់នៃខ្សែអក្សរមួយ។strip()
  • រាយបញ្ជីកំណត់ចំណាំដើម្បីអនុវត្តមុខងារ និងវិធីសាស្រ្តក្នុងការរាយធាតុ។

វាក៏បង្ហាញពីរបៀបបង្កើតបញ្ជីខ្សែដែលបំបែកដោយដកឃ្លា និងសញ្ញាក្បៀសដោយដកដកឃ្លាចេញ ដូចបានបង្ហាញខាងក្រោម។
one, two, three'

លើសពីនេះទៀតយើងនឹងពិភាក្សាដូចខាងក្រោម

  • របៀបយកវាជាបញ្ជីលេខ
  • របៀបប្រើ join() ដើម្បីចូលរួមបញ្ជី ហើយធ្វើឱ្យវាក្លាយជាខ្សែអក្សរម្តងទៀត

split():បំបែក​ខ្សែ​អក្សរ​ដោយ​មាន​អ្នក​កំណត់​ព្រំដែន​ដែល​បាន​បញ្ជាក់​ហើយ​ត្រឡប់​វា​ជា​បញ្ជី

ដោយប្រើវិធីបំបែក() សម្រាប់ខ្សែអក្សរ អ្នកអាចបំបែកខ្សែអក្សរជាមួយនឹងសញ្ញាកំណត់ដែលបានបញ្ជាក់ ហើយទទួលបានវាជាបញ្ជី (អារេ)។ ការកំណត់ព្រំដែនដែលបានបញ្ជាក់អាចត្រូវបានបញ្ជាក់ដោយអាគុយម៉ង់ខាងក្រោម។sep

ប្រសិនបើអាគុយម៉ង់ sep ត្រូវបានលុបចោល ហើយគ្មានការកំណត់ព្រំដែនត្រូវបានបញ្ជាក់ វាបំបែកខ្សែអក្សរដោយដកឃ្លា ហើយត្រឡប់បញ្ជីមួយ។ ចន្លោះ និងផ្ទាំងជាប់គ្នាក៏នឹងបំបែកបញ្ជីដែរ ដូច្នេះប្រសិនបើអ្នកចង់បង្កើតបញ្ជីខ្សែអក្សរដែលកំណត់ដោយផ្ទាំង អ្នកអាចប្រើ split() ដោយគ្មានអាគុយម៉ង់។

s = 'one two three'
l = s.split()
print(l)
# ['one', 'two', 'three']

s = 'one two        three'
l = s.split()
print(l)
# ['one', 'two', 'three']

s = 'one\ttwo\tthree'
l = s.split()
print(l)
# ['one', 'two', 'three']

ប្រសិនបើសញ្ញាកំណត់ព្រំដែនត្រូវបានបញ្ជាក់នៅក្នុងអាគុយម៉ង់ sep វាបែងចែកបញ្ជីដោយខ្សែអក្សរនោះ ហើយត្រឡប់បញ្ជីមួយ។

s = 'one::two::three'
l = s.split('::')
print(l)
# ['one', 'two', 'three']

ក្នុងករណីខ្សែអក្សរដែលបំបែកដោយសញ្ញាក្បៀស ប្រសិនបើគ្មានចន្លោះពណ៌សបន្ថែមទេនោះ គ្មានបញ្ហាអ្វីទេ ប៉ុន្តែប្រសិនបើអ្នកដំណើរការបំបែក() ដោយសញ្ញាក្បៀសជាសញ្ញាកំណត់សម្រាប់ខ្សែអក្សរដែលបំបែកដោយសញ្ញាក្បៀស + ចន្លោះពណ៌ស អ្នកនឹងបញ្ចប់។ ឡើងជាមួយនឹងបញ្ជីខ្សែអក្សរដែលមានចន្លោះពណ៌សទុកនៅដើម។

s = 'one,two,three'
l = s.split(',')
print(l)
# ['one', 'two', 'three']

s = 'one, two, three'
l = s.split(',')
print(l)
# ['one', ' two', ' three']

អ្នក​អាច​ប្រើ​សញ្ញាក្បៀស + ដកឃ្លា​ជា​អ្នក​កំណត់​ដូច​ខាងក្រោម ប៉ុន្តែ​វា​នឹង​មិន​ដំណើរការ​ទេ ប្រសិនបើ​ចំនួន​ដកឃ្លា​ក្នុង​ខ្សែអក្សរ​ដើម​ខុស​គ្នា។, '

s = 'one, two, three'
l = s.split(', ')
print(l)
# ['one', 'two', 'three']

s = 'one, two,  three'
l = s.split(', ')
print(l)
# ['one', 'two', ' three']

ខ្សែវិធីសាស្ត្រខ្សែអក្សរ() ដែលនឹងត្រូវបានពន្យល់បន្ទាប់ អាចត្រូវបានប្រើដើម្បីដោះស្រាយជាមួយចន្លោះពីរ។

strip():ដកតួអក្សរបន្ថែមពីដើម និងចុងបញ្ចប់នៃខ្សែអក្សរមួយ។

strip() គឺ​ជា​វិធីសាស្ត្រ​មួយ​ដើម្បី​យក​តួអក្សរ​បន្ថែម​ចេញ​ពី​ដើម​ និង​ចុង​នៃ​ខ្សែអក្សរ។

ប្រសិនបើ​អាគុយម៉ង់​ត្រូវ​បាន​លុប នោះ​ខ្សែ​ថ្មី​មួយ​នឹង​ត្រូវ​បាន​ត្រឡប់​ជាមួយ​នឹង​តួអក្សរ​ដកឃ្លា​ចេញ។ ខ្សែអក្សរដើមខ្លួនឯងមិនត្រូវបានផ្លាស់ប្តូរទេ។

s = '  one  '
print(s.strip())
# one

print(s)
#   one  

ប្រសិនបើ​ខ្សែអក្សរ​ត្រូវបាន​បញ្ជាក់​ជា​អាគុយម៉ង់ នោះ​តួអក្សរ​ដែលមាន​ក្នុង​ខ្សែអក្សរ​នឹង​ត្រូវ​បាន​ដកចេញ។

s = '-+-one-+-'
print(s.strip('-+'))
# one

ក្នុងករណីនេះ ចន្លោះមិនត្រូវបានដកចេញទេ។ ដូច្នេះហើយ ប្រសិនបើអ្នកចង់លុបដកឃ្លាចេញផងដែរ សូមឆ្លងកាត់ខ្សែអក្សរ រួមទាំងដកឃ្លាជាអាគុយម៉ង់ ដូចបានបង្ហាញខាងក្រោម។-+ '

s = '-+- one -+-'
print(s.strip('-+'))
#  one 

s = '-+- one -+-'
print(s.strip('-+ '))
# one

strip() ដោះស្រាយចុងទាំងពីរ ប៉ុន្តែមុខងារខាងក្រោមក៏មានផងដែរ។

  • lstrip():ដំណើរការតែការចាប់ផ្តើមប៉ុណ្ណោះ។
  • rstrip():ដំណើរការតែចុងបញ្ចប់នៃបន្ទាត់ប៉ុណ្ណោះ។

រាយបញ្ជីកំណត់ចំណាំ៖ អនុវត្តមុខងារ និងវិធីសាស្ត្រដើម្បីរាយធាតុ

ប្រសិនបើអ្នកចង់អនុវត្តមុខងារ ឬវិធីសាស្ត្រចំពោះធាតុនៃបញ្ជី វាជាការឆ្លាតវៃក្នុងការប្រើការយល់ឃើញក្នុងបញ្ជី ជំនួសឱ្យការសម្រាប់រង្វិលជុំ ប្រសិនបើអ្នកចង់ទទួលបានបញ្ជីនៅចុងបញ្ចប់។

នៅទីនេះ យើងអនុវត្ត strip() ទៅក្នុងបញ្ជីដែលទទួលបានដោយការបំបែក string ជាមួយ split()។ ចន្លោះបន្ថែមនៅក្នុងខ្សែអក្សរដែលបំបែកដោយសញ្ញាក្បៀសដែលមានចន្លោះទទេអាចត្រូវបានយកចេញដើម្បីបង្កើតបញ្ជី។

s = 'one, two, three'
l = [x.strip() for x in s.split(',')]
print(l)
# ['one', 'two', 'three']

នៅពេលដែលវាត្រូវបានអនុវត្តទៅខ្សែអក្សរទទេ បញ្ជីដែលមានខ្សែអក្សរទទេតែមួយជាធាតុអាចទទួលបាន។

s = ''
l = [x.strip() for x in s.split(',')]
print(l)
print(len(l))
# ['']
# 1

ប្រសិនបើ​អ្នក​ចង់​ទទួល​បាន​បញ្ជី​ទទេ​សម្រាប់​ខ្សែអក្សរ​ទទេ អ្នក​អាច​រៀបចំ​សាខា​តាម​លក្ខខណ្ឌ​ក្នុង​ការ​យល់​ដឹង​បញ្ជី។

s = ''
l = [x.strip() for x in s.split(',') if not s == '']
print(l)
print(len(l))
# []
# 0

one, , three'
ដូចគ្នានេះផងដែរ ប្រសិនបើបាត់ធាតុដែលបំបែកដោយសញ្ញាក្បៀស ដូចដែលបានពិពណ៌នាខាងលើ វិធីសាស្ត្រទីមួយនឹងរាយវាជាធាតុខ្សែអក្សរទទេ។

s = 'one, , three'
l = [x.strip() for x in s.split(',')]
print(l)
print(len(l))
# ['one', '', 'three']
# 3

ប្រសិនបើអ្នកចង់មិនអើពើផ្នែកដែលបាត់ អ្នកអាចរៀបចំសាខាតាមលក្ខខណ្ឌក្នុងបញ្ជីកំណត់ចំណាំ។

s = 'one, ,three'
l = [x.strip() for x in s.split(',') if not x.strip() == '']
print(l)
print(len(l))
# ['one', 'three']
# 2

ទទួលបានជាបញ្ជីលេខ

ប្រសិនបើអ្នកចង់ទទួលបានខ្សែអក្សរដែលបំបែកដោយសញ្ញាក្បៀសជាបញ្ជីលេខជំនួសឱ្យខ្សែអក្សរ សូមអនុវត្ត int() ឬ float() ដើម្បីបំប្លែងខ្សែអក្សរទៅជាលេខនៅក្នុងកំណត់ចំណាំនៃបញ្ជី។

s = '1, 2, 3, 4'
l = [x.strip() for x in s.split(',')]
print(l)
print(type(l[0]))
# ['1', '2', '3', '4']
# <class 'str'>

s = '1, 2, 3, 4'
l = [int(x.strip()) for x in s.split(',')]
print(l)
print(type(l[0]))
# [1, 2, 3, 4]
# <class 'int'>

join():បញ្ចូល​បញ្ជី​មួយ ហើយ​យក​វា​ជា​ខ្សែអក្សរ

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

វាងាយស្រួលក្នុងការធ្វើខុស ប៉ុន្តែត្រូវចំណាំថា join() គឺជាវិធីសាស្ត្រខ្សែអក្សរ មិនមែនជាវិធីសាស្ត្របញ្ជីទេ។ បញ្ជីត្រូវបានបញ្ជាក់ជាអាគុយម៉ង់។

s = 'one, two,  three'
l = [x.strip() for x in s.split(',')]
print(l)
# ['one', 'two', 'three']

print(','.join(l))
# one,two,three

print('::'.join(l))
# one::two::three

អ្នកអាចសរសេរវាក្នុងមួយជួរដូចខាងក្រោម។

s = 'one, two,  three'
s_new = '-'.join([x.strip() for x in s.split(',')])
print(s_new)
# one-two-three

ប្រសិនបើអ្នកគ្រាន់តែចង់ផ្លាស់ប្តូរការកំណត់ព្រំដែនថេរ វាកាន់តែងាយស្រួលក្នុងការជំនួសវាដោយវិធីជំនួស()។

s = 'one,two,three'
s_new = s.replace(',', '+')
print(s_new)
# one+two+three
Copied title and URL