Pagsasama-sama at pagsasama ng mga string sa Python: + operator, pagsali sa mga function, atbp.

Negosyo

Ang sumusunod ay isang paglalarawan kung paano pagsamahin at pagsali sa string str sa Python.

  • Pagsasama-sama at pagsasama-sama ng maramihang mga string:+,+=operator
  • Pagsamahin at pagsamahin ang mga numero at string:+,+=operator,str(),format(),f-string
  • Pagsamahin at pagsamahin ang mga listahan (mga array) ng mga string sa iisang string:join()
  • Pagsamahin at pagsamahin ang mga listahan (mga array) ng mga numero sa isang string:join(),str()

Pagsasama-sama at pagsasama-sama ng maramihang mga string:+,+=operator

koneksyon:+operator

Ang ++ operator ay maaaring gamitin upang pagsamahin ang mga sumusunod na string literal at string variable

  • …’
  • “…”
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

koneksyon:+=operator

Ang += operator, isang pinagsama-samang assignment operator, ay maaari ding gamitin. Ang string variable sa kaliwang bahagi ay pinagsama sa string sa kanang bahagi, at itinalaga at ina-update.

s1 += s2
print(s1)
# aaabbb

Kung gusto mong magdagdag ng string sa dulo ng string variable, iproseso lang ang string variable at anumang string literal (o isa pang string variable) gamit ang += operator.

s = 'aaa'

s += 'xxx'
print(s)
# aaaxxx

Magkasunod na pagsasama-sama ng mga literal na string

Kung isusulat mo lang ang mga string literal na magkatabi, ang mga string literal ay pagsasama-samahin.

s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc

Katanggap-tanggap na magkaroon ng puwang sa pagitan ng dalawang linya o isang backslash line break (tinuturing na pagpapatuloy).

s = 'aaa'  'bbb'    'ccc'
print(s)
# aaabbbccc

s = 'aaa'\
    'bbb'\
    'ccc'
print(s)
# aaabbbccc

Mayroong isang pamamaraan upang magamit ito upang magsulat ng mahabang mga string sa maraming linya sa code.

Ang paraan ng pagsulat na ito ay hindi posible para sa mga variable ng string.

# s = s1 s2 s3
# SyntaxError: invalid syntax

Numeric at string concatenation/concatenation:+,+=operator,str(),format(),f-string

Ang isang + na operasyon ng ibang uri ay nagreresulta sa isang error.

s1 = 'aaa'
s2 = 'bbb'

i = 100
f = 0.25

# s = s1 + i
# TypeError: must be str, not int

Kung gusto mong pagsamahin ang isang numeric na halaga (hal., integer type int o floating-point type float) sa isang string, i-convert ang numeric value sa isang string type na may str() at pagkatapos ay pagsamahin ang mga ito sa + operator (o += operator ).

s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25

Kung gusto mong i-convert ang format ng isang numero, gaya ng zero-filling o decimal place, gamitin ang format() function o ang string method 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

Siyempre, posible ring i-embed ang halaga ng isang variable nang direkta sa isang string nang walang pag-format. Ito ay mas simple isulat kaysa sa paggamit ng + operator.

s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25

Tingnan ang sumusunod na artikulo para sa mga detalye kung paano tukuyin ang format.

Mula noong Python 3.6, isang mekanismo na tinatawag na f-strings (f-string) ay ipinakilala rin, na mas simple pang isulat kaysa 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

Pagsamahin at pagsamahin ang mga listahan (mga array) ng mga string:join()

Ang string method join() ay maaaring gamitin upang pagsamahin ang isang listahan ng mga string sa isang string.

Ang sumusunod ay kung paano ito isulat.

'String to be inserted between'.join([List of strings to be concatenated])

Tawagan ang join() method na may ‘string to insert between’ at ipasa ang [list of strings to concatenate] bilang argumento.

Kung gagamitin ang isang walang laman na string, ang [listahan ng mga string na pagsasama-samahin] ay simpleng pagsasama-samahin, kung comma ang ginamit, ang mga string ay pinaghihiwalay ng kuwit, at kung ang isang bagong linya na character ay gagamitin, ang bawat elemento ng string ay magiging bagong linya.

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

Bagama’t isang halimbawa lamang ng isang listahan ang ibinibigay dito, ang iba pang mga iterable na bagay tulad ng mga tuple ay maaaring tukuyin bilang mga argumento na sumali() din.

Sa kaibahan sa join(), ang split() ay ginagamit upang hatiin ang isang string na nililimitahan ng isang partikular na delimiter at makuha ito bilang isang listahan.

Pagsamahin at pagsamahin ang mga listahan (mga array) ng mga numero bilang mga string:join(),str()

Ang isang error ay nangyayari kung ang argument na sumali () ay isang listahan na ang mga elemento ay hindi mga string.

l = [0, 1, 2]

# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found

Upang pagsama-samahin ang isang listahan ng mga numero sa isang string, ilapat ang str() function sa bawat elemento sa list comprehension notation upang i-convert ang mga numero sa isang string, at pagkatapos ay pagsamahin ang mga ito sa join().

s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2

Maaari rin itong isulat bilang isang expression ng generator, na isang bersyon ng generator ng mga pag-unawa sa listahan. Ang mga expression ng generator ay nakapaloob sa mga panaklong, ngunit ang mga panaklong ay maaaring tanggalin kung ang expression ng generator ay ang tanging argumento sa isang function o pamamaraan.

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

Ang mga generator expression sa pangkalahatan ay may bentahe ng paggamit ng mas kaunting memorya kaysa sa mga pag-unawa sa listahan, ngunit walang partikular na kalamangan sa paggamit ng generator expression dahil ang join() ay nagko-convert ng mga generator sa mga listahan sa panloob na pagproseso nito. Sa katunayan, ito ay bahagyang mas mabilis na gumamit ng mga pag-unawa sa listahan mula sa simula.

Para sa karagdagang impormasyon sa mga pag-unawa sa listahan at mga expression ng generator, tingnan ang sumusunod na artikulo.