Калі радок, падзелены коскамі, падзяляецца на спіс у Python, калі паміж імі няма прабелаў, будзе працаваць проста split(). Калі ёсць прабелы, карысна аб’яднаць іх з strip(), каб выдаліць лішнія прабелы. Акрамя таго, разумным спосабам запісу з’яўляецца выкарыстанне абазначэння разумення спісу.
У гэтым раздзеле мы спачатку растлумачым наступнае.
- Раздзяліць радок з указаным падзельнікам і вярнуць яго ў выглядзе спісу
split()
- Выдаліце лішнія сімвалы з пачатку і канца радка.
strip()
- Абазначэнне разумення спісу для прымянення функцый і метадаў да элементаў спісу.
Ён таксама паказвае, як скласці спіс радкоў, падзеленых прабеламі і коскамі, выдаліўшы прабелы, як паказана ніжэй.one, two, three'
Акрамя таго, мы абмяркуем наступнае
- Як атрымаць яго ў выглядзе спісу лічбаў
- Як выкарыстоўваць join(), каб далучыцца да спісу і зноў зрабіць яго радком
- split():Раздзяліць радок з указаным падзельнікам і вярнуць яго ў выглядзе спісу
- strip():Выдаліце лішнія сімвалы з пачатку і канца радка.
- Абазначэнне разумення спісу: прымяненне функцый і метадаў да элементаў спісу
- Атрымаць у выглядзе спісу лічбаў
- join():Аб’яднайце спіс і атрымайце яго ў выглядзе радка
split():Раздзяліць радок з указаным падзельнікам і вярнуць яго ў выглядзе спісу
Выкарыстоўваючы метад 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']
У выпадку раздзеленага коскамі радка, калі няма лішніх прабелаў, няма праблем, але калі вы запусціце 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, two, three' l = s.split(', ') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', ' three']
Радковы метад strip(), які будзе растлумачаны далей, можа быць выкарыстаны для працы з двума прабеламі.
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()
:Апрацуйце толькі канец радка.
Абазначэнне разумення спісу: прымяненне функцый і метадаў да элементаў спісу
Калі вы хочаце прымяніць функцыю або метад да элементаў спісу, разумна выкарыстоўваць натацыю разумення спісу замест цыклу for, калі вы хочаце атрымаць спіс у рэшце рэшт.
- Падобныя артыкулы:Выкарыстанне абазначэння разумення спісу Python
Тут мы ўжываем strip() да спісу, атрыманага шляхам падзелу радка з дапамогай 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
Калі вы проста хочаце змяніць фіксаваны падзельнік, прасцей замяніць яго метадам replace().
s = 'one,two,three' s_new = s.replace(',', '+') print(s_new) # one+two+three