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
- Numeric at string concatenation/concatenation:+,+=operator,str(),format(),f-string
- Pagsamahin at pagsamahin ang mga listahan (mga array) ng mga string:join()
- Pagsamahin at pagsamahin ang mga listahan (mga array) ng mga numero bilang mga 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.
- Mga Kaugnay na Artikulo:Pagsusulat ng mahabang string sa maraming linya sa Python
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.
- Mga Kaugnay na Artikulo:I-format ang conversion sa Python, format (0-filling, exponential notation, hexadecimal, atbp.)
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.
- Mga Kaugnay na Artikulo:Paano gamitin ang mga pag-unawa sa listahan ng Python