Python, split, каб падзяліць радок, падзелены коскамі, выдаліць прабелы і пераўтварыць у спіс

Бізнэс

Калі радок, падзелены коскамі, падзяляецца на спіс у Python, калі паміж імі няма прабелаў, будзе працаваць проста split(). Калі ёсць прабелы, карысна аб’яднаць іх з strip(), каб выдаліць лішнія прабелы. Акрамя таго, разумным спосабам запісу з’яўляецца выкарыстанне абазначэння разумення спісу.

У гэтым раздзеле мы спачатку растлумачым наступнае.

  • Раздзяліць радок з указаным падзельнікам і вярнуць яго ў выглядзе спісуsplit()
  • Выдаліце ​​лішнія сімвалы з пачатку і канца радка.strip()
  • Абазначэнне разумення спісу для прымянення функцый і метадаў да элементаў спісу.

Ён таксама паказвае, як скласці спіс радкоў, падзеленых прабеламі і коскамі, выдаліўшы прабелы, як паказана ніжэй.
one, two, three'

Акрамя таго, мы абмяркуем наступнае

  • Як атрымаць яго ў выглядзе спісу лічбаў
  • Як выкарыстоўваць 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, калі вы хочаце атрымаць спіс у рэшце рэшт.

Тут мы ўжываем 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
Copied title and URL