នៅពេលបំបែកខ្សែអក្សរដែលបំបែកដោយសញ្ញាក្បៀសទៅក្នុងបញ្ជីក្នុង 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()
:ដំណើរការតែចុងបញ្ចប់នៃបន្ទាត់ប៉ុណ្ណោះ។
រាយបញ្ជីកំណត់ចំណាំ៖ អនុវត្តមុខងារ និងវិធីសាស្ត្រដើម្បីរាយធាតុ
ប្រសិនបើអ្នកចង់អនុវត្តមុខងារ ឬវិធីសាស្ត្រចំពោះធាតុនៃបញ្ជី វាជាការឆ្លាតវៃក្នុងការប្រើការយល់ឃើញក្នុងបញ្ជី ជំនួសឱ្យការសម្រាប់រង្វិលជុំ ប្រសិនបើអ្នកចង់ទទួលបានបញ្ជីនៅចុងបញ្ចប់។
- អត្ថបទដែលទាក់ទង:ការប្រើសញ្ញាសម្គាល់ការយល់បញ្ជី Python
នៅទីនេះ យើងអនុវត្ត 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