Ніжэй прыводзіцца апісанне таго, як аб’яднаць і далучыць радок str ў Python.
- Канкатэнацыя і аб’яднанне некалькіх радкоў:
+
,+=
аператар - Канкатэнацыя і аб’яднанне лікаў і радкоў:
+
,+=
аператар,str()
,format()
,f-струн - Аб’ядноўваць і аб’ядноўваць спісы (масіў) радкоў у адзін радок:
join()
- Аб’ядноўваць і аб’ядноўваць спісы (масіў) лікаў у адзін радок:
join()
,str()
Канкатэнацыя і аб’яднанне некалькіх радкоў:+,+=аператар
злучэнне:+аператар
Аператар ++ можа быць выкарыстаны для канкатэнацыі наступных радковых літаралаў і радковых зменных
- …’
- “…”
s = 'aaa' + 'bbb' + 'ccc'
print(s)
# aaabbbccc
s1 = 'aaa'
s2 = 'bbb'
s3 = 'ccc'
s = s1 + s2 + s3
print(s)
# aaabbbccc
s = s1 + s2 + s3 + 'ddd'
print(s)
# aaabbbcccddd
злучэнне:+=аператар
Аператар +=, аператар кумулятыўнага прысваення, таксама можа быць выкарыстаны. Радковая зменная з левага боку злучаецца з радком з правага боку, прысвойваецца і абнаўляецца.
s1 += s2
print(s1)
# aaabbb
Калі вы хочаце дадаць радок у канец радкавай зменнай, проста апрацуйце радковую зменную і любы радковы літарал (або іншую радковую зменную) аператарам +=.
s = 'aaa'
s += 'xxx'
print(s)
# aaaxxx
Паслядоўная канкатэнацыя радковых літаралаў
Калі вы проста пішаце радковыя літаралы побач, радковыя літэралы будуць злучаныя.
s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc
Дапушчальна мець прабел паміж двума радкамі або разрыў радка з зваротнай касой рысай (лічыцца працягам).
s = 'aaa' 'bbb' 'ccc'
print(s)
# aaabbbccc
s = 'aaa'\
'bbb'\
'ccc'
print(s)
# aaabbbccc
Існуе тэхніка, каб выкарыстоўваць гэта для запісу доўгіх радкоў на некалькіх радках у кодзе.
- Падобныя артыкулы:Напісанне доўгіх радкоў на некалькіх радках у Python
Гэты метад запісу немагчымы для радковых зменных.
# s = s1 s2 s3
# SyntaxError: invalid syntax
Лікавая і радковая канкатэнацыя/канкатэнацыя:+,+=аператар,str(),format(),f-струн
Аперацыя + іншага тыпу прыводзіць да памылкі.
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
Калі вы хочаце аб’яднаць лікавае значэнне (напрыклад, цэлы тып int або тып з плаваючай кропкай float) з радком, пераўтварыце лікавае значэнне ў радкавы тып з дапамогай str(), а затым злучыце іх з дапамогай аператара + (або +=). ).
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25
Калі вы хочаце пераўтварыць фармат ліку, напрыклад, з запаўненнем нуля або дзесятковымі знакамі, выкарыстоўвайце функцыю format() або метад радка format().
s = s1 + '_' + format(i, '05') + '_' + s2 + '_' + format(f, '.5f')
print(s)
# aaa_00100_bbb_0.25000
s = '{}_{:05}_{}_{:.5f}'.format(s1, i, s2, f)
print(s)
# aaa_00100_bbb_0.25000
Вядома, таксама можна ўбудаваць значэнне зменнай непасрэдна ў радок без фарматавання. Гэта прасцей пісаць, чым выкарыстоўваць аператар +.
s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25
Глядзіце наступны артыкул, каб даведацца, як задаць фармат.
- Падобныя артыкулы:Пераўтварэнне фармату ў Python, фармат (запаўненне 0, экспанентны запіс, шаснаццатковы і г.д.)
Пачынаючы з Python 3.6, таксама быў уведзены механізм пад назвай f-strings (f-string), які яшчэ прасцей пісаць, чым format().
s = f'{s1}_{i:05}_{s2}_{f:.5f}'
print(s)
# aaa_00100_bbb_0.25000
s = f'{s1}_{i}_{s2}_{f}'
print(s)
# aaa_100_bbb_0.25
Канкатэнацыя і аб’яднанне спісаў (масіўаў) радкоў:join()
Радковы метад join() можа быць выкарыстаны для канкатэнацыі спісу радкоў у адзін радок.
Ніжэй паказана, як гэта напісаць.
'String to be inserted between'.join([List of strings to be concatenated])
Выклічце метад join() з “радок для ўстаўкі паміж” і перадайце [спіс радкоў для канкатэнацыі] у якасці аргумента.
Калі выкарыстоўваецца пусты радок, [спіс радкоў для аб’яднання] будзе проста злучаны, калі выкарыстоўваецца коска, радкі будуць падзеленыя коскамі, а калі выкарыстоўваецца сімвал новага радка, кожны элемент радка будзе пераведзены на новы радок.
l = ['aaa', 'bbb', 'ccc']
s = ''.join(l)
print(s)
# aaabbbccc
s = ','.join(l)
print(s)
# aaa,bbb,ccc
s = '-'.join(l)
print(s)
# aaa-bbb-ccc
s = '\n'.join(l)
print(s)
# aaa
# bbb
# ccc
Хоць тут прыведзены толькі прыклад спісу, іншыя ітэрацыйныя аб’екты, такія як картэжы, таксама могуць быць вызначаны ў якасці аргументаў для join().
У адрозненне ад join(), split() выкарыстоўваецца для падзелу радка, абмежаванага пэўным падзельнікам, і атрымання яго ў выглядзе спісу.
Аб’ядноўваць і аб’ядноўваць спісы (масіў) лікаў у выглядзе радкоў:join(),str()
Памылка ўзнікае, калі аргумент join() з’яўляецца спісам, элементы якога не з’яўляюцца радкамі.
l = [0, 1, 2]
# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found
Каб аб’яднаць спіс лікаў у адзін радок, прымяніце функцыю str() да кожнага элемента ў натацыі разумення спісу, каб пераўтварыць лічбы ў радок, а затым далучыце іх пры дапамозе join().
s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2
Яго таксама можна запісаць у выглядзе выразу генератара, які з’яўляецца генератарнай версіяй разумення спісу. Выразы генератара заключаны ў дужкі, але дужкі можна апусціць, калі выраз генератара з’яўляецца адзіным аргументам функцыі або метаду.
s = '-'.join((str(n) for n in l))
print(s)
# 0-1-2
s = '-'.join(str(n) for n in l)
print(s)
# 0-1-2
Выразы генератара звычайна маюць перавагу ў выкарыстанні меншай памяці, чым у спісах, але няма асаблівай перавагі ў выкарыстанні выразаў генератара, паколькі join() пераўтворыць генератары ў спісы ў сваёй унутранай апрацоўцы. Насамрэч, выкарыстоўваць разуменне спісу з самага пачатку крыху хутчэй.
Для атрымання дадатковай інфармацыі аб разуменні спісу і выразах генератара глядзіце наступны артыкул.
- Падобныя артыкулы:Як выкарыстоўваць разуменне спісу Python