Më poshtë është një përshkrim se si të lidhni dhe bashkoni string str në Python.
- Lidhja dhe bashkimi i vargjeve të shumta:
+
,+=
operatori - Lidhni dhe kombinoni numrat dhe vargjet:
+
,+=
operatori,str()
,format()
,f-string - Lidhni dhe kombinoni listat (vargjet) e vargjeve në një varg të vetëm:
join()
- Lidhni dhe kombinoni listat (vargjet) e numrave në një varg të vetëm:
join()
,str()
Lidhja dhe bashkimi i vargjeve të shumta:+,+=operatori
lidhje:+operatori
Operatori ++ mund të përdoret për të bashkuar vargjet e mëposhtme dhe variablat e vargut
- …’
- “…”
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
lidhje:+=operatori
Mund të përdoret gjithashtu operatori +=, një operator caktimi kumulativ. Variabla e vargut në anën e majtë është e lidhur me vargun në anën e djathtë dhe caktohet dhe përditësohet.
s1 += s2
print(s1)
# aaabbb
Nëse dëshironi të shtoni një varg në fund të një ndryshoreje vargu, thjesht përpunoni variablin e vargut dhe çdo varg literal (ose një variabël tjetër vargu) me operatorin +=.
s = 'aaa'
s += 'xxx'
print(s)
# aaaxxx
Lidhja e njëpasnjëshme e literaleve të vargut
Nëse thjesht shkruani literalet e vargjeve krah për krah, literalet e vargut do të bashkohen.
s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc
Është e pranueshme që të ketë një hapësirë midis dy rreshtave ose një ndërprerje të vijës së prapme (konsiderohet si vazhdim).
s = 'aaa' 'bbb' 'ccc'
print(s)
# aaabbbccc
s = 'aaa'\
'bbb'\
'ccc'
print(s)
# aaabbbccc
Ekziston një teknikë për ta përdorur këtë për të shkruar vargje të gjata në rreshta të shumtë në kod.
- Artikuj të ngjashëm:Shkrimi i vargjeve të gjata në rreshta të shumtë në Python
Kjo metodë shkrimi nuk është e mundur për variablat e vargut.
# s = s1 s2 s3
# SyntaxError: invalid syntax
Lidhja/lidhja numerike dhe e vargjeve:+,+=operatori,str(),format(),f-string
Operacioni A + i një lloji tjetër rezulton në një gabim.
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
Nëse dëshironi të lidhni një vlerë numerike (p.sh., lloji i plotë int ose tipi me pikë lundruese float) me një varg, konvertoni vlerën numerike në një lloj vargu me str() dhe më pas lidhini ato me operatorin + (ose += operatorin). ).
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25
Nëse dëshironi të konvertoni formatin e një numri, si për shembull numrat me mbushje zero ose dhjetore, përdorni funksionin format() ose formatin e metodës së vargut ().
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
Sigurisht, është gjithashtu e mundur të futet vlera e një ndryshoreje drejtpërdrejt në një varg pa formatim. Kjo është më e thjeshtë për t’u shkruar sesa përdorimi i operatorit +.
s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25
Shihni artikullin vijues për detaje se si të specifikoni formatin.
- Artikuj të ngjashëm:Konvertimi i formatit në Python, formati (mbushja 0, shënimi eksponencial, heksadecimal, etj.)
Që nga Python 3.6, është prezantuar edhe një mekanizëm i quajtur f-strings (f-string), i cili është edhe më i thjeshtë për t’u shkruar sesa 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
Lidhni dhe bashkoni listat (vargjet) e vargjeve:join()
Metoda e vargut join() mund të përdoret për të lidhur një listë vargjesh në një varg të vetëm.
Më poshtë është se si ta shkruajmë atë.
'String to be inserted between'.join([List of strings to be concatenated])
Thirrni metodën join() me ‘string për të futur ndërmjet’ dhe kaloni [listën e vargjeve për t’u bashkuar] si argument.
Nëse përdoret një varg bosh, [lista e vargjeve që do të bashkohen] thjesht do të lidhet, nëse përdoret një presje, vargjet do të ndahen me presje dhe nëse përdoret një karakter i linjës së re, çdo element i vargut do të vihet në vijë të re.
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
Edhe pse këtu jepet vetëm një shembull i një liste, objekte të tjera të përsëritura si tuples mund të specifikohen gjithashtu si argumente për t’u bashkuar () gjithashtu.
Në ndryshim nga join(), split() përdoret për të ndarë një varg të kufizuar nga një kufizues specifik dhe për ta marrë atë si listë.
Lidhni dhe kombinoni listat (vargjet) e numrave si vargje:join(),str()
Ndodh një gabim nëse argumenti për të bashkuar() është një listë, elementët e së cilës nuk janë vargje.
l = [0, 1, 2]
# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found
Për të bashkuar një listë numrash në një varg të vetëm, aplikoni funksionin str() në secilin element në shënimin e kuptimit të listës për t’i kthyer numrat në një varg dhe më pas bashkojini ato me join().
s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2
Mund të shkruhet gjithashtu si një shprehje gjeneruese, e cila është një version gjenerues i kuptimeve të listës. Shprehjet e gjeneratorit janë të mbyllura në kllapa, por kllapat mund të hiqen nëse shprehja e gjeneratorit është argumenti i vetëm për një funksion ose metodë.
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
Shprehjet e gjeneratorit në përgjithësi kanë avantazhin e përdorimit të më pak memorie sesa kuptimet e listave, por nuk ka ndonjë avantazh të veçantë për përdorimin e shprehjeve të gjeneratorit pasi join() konverton gjeneratorët në lista në përpunimin e tij të brendshëm. Në fakt, është pak më e shpejtë të përdorësh të kuptuarit e listës që në fillim.
Për më shumë informacion mbi kuptimin e listës dhe shprehjet gjeneruese, shihni artikullin vijues.
- Artikuj të ngjashëm:Si të përdorni kuptimet e listës Python