Lidhja dhe bashkimi i vargjeve në Python: + operatorët, funksionet e bashkimit, etj.

biznes

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.

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.

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.

Copied title and URL