Concatenating lan nggabungake strings ing Python: + operator, gabung fungsi, etc.

Bisnis

Ing ngisor iki minangka katrangan babagan cara nggabungake lan nggabungake string str ing Python.

  • Concatenating lan nggabungake pirang-pirang senar:+,+=operator
  • Concatenate lan gabungke nomer lan strings:+,+=operator,str(),format(),f-string
  • Gabungke lan gabungke dhaptar (larik) senar dadi senar siji:join()
  • Gabungke lan gabungke dhaptar (larik) nomer dadi senar siji:join(),str()

Concatenating lan nggabungake pirang-pirang senar:+,+=operator

sambungan:+operator

Operator ++ bisa digunakake kanggo nggabungake literal string lan variabel string ing ngisor iki

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

sambungan:+=operator

Operator +=, operator penugasan kumulatif, uga bisa digunakake. Variabel senar ing sisih kiwa digabungake karo senar ing sisih tengen, lan ditugasake lan dianyari.

s1 += s2
print(s1)
# aaabbb

Yen sampeyan pengin nambah string menyang mburi variabel senar, cukup proses variabel string lan string literal (utawa variabel string liyane) nganggo operator +=.

s = 'aaa'

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

Concatenation consecutive saka string literals

Yen sampeyan mung nulis string literals bebarengan, string literals bakal concatenated.

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

Ditrima yen ana spasi ing antarane rong garis utawa garis garis miring mundur (dianggep terusan).

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

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

Ana teknik kanggo nggunakake iki kanggo nulis senar dawa ing pirang-pirang baris ing kode kasebut.

Cara nulis iki ora bisa kanggo variabel senar.

# s = s1 s2 s3
# SyntaxError: invalid syntax

Numerik lan string concatenation / concatenation:+,+=operator,str(),format(),f-string

Operasi A + saka jinis sing beda nyebabake kesalahan.

s1 = 'aaa'
s2 = 'bbb'

i = 100
f = 0.25

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

Yen sampeyan pengin nggabungake nilai numerik (contone, integer tipe int utawa floating-point type float) karo string, ngowahi angka numerik menyang tipe string karo str() banjur gabungke karo operator + (utawa += operator. ).

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

Yen sampeyan pengin ngowahi format nomer, kayata nol-Isi utawa panggonan desimal, nggunakake fungsi format () utawa format cara senar ().

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

Mesthi, iku uga bisa kanggo nampilaké Nilai saka variabel langsung ing senar tanpa format. Iki luwih gampang kanggo nulis tinimbang nggunakake operator +.

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

Deleng artikel ing ngisor iki kanggo rincian babagan cara nemtokake format kasebut.

Wiwit Python 3.6, mekanisme disebut f-strings (f-string) uga wis ngenalaken, kang malah prasaja kanggo nulis saka 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

Concatenate lan gabung dhaftar (larik) saka strings:join()

Cara senar gabung () bisa digunakake kanggo nggabungake dhaptar senar dadi senar siji.

Ing ngisor iki carane nulis.

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

Nelpon cara gabung () karo ‘string kanggo masang antarane’ lan pass [dhaptar strings kanggo concatenate] minangka argumen.

Yen string kosong digunakake, [dhaptar string sing arep digabung] bakal mung digabung, yen koma digunakake, string bakal dipisahake koma, lan yen karakter baris anyar digunakake, saben unsur string bakal anyar.

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

Senajan mung conto dhaftar diwenehi kene, obyek iterable liyane kayata tuples bisa ditemtokake minangka bantahan kanggo nggabungake () uga.

Ing kontras kanggo nggabungake (), pamisah () digunakake kanggo pamisah senar diwatesi dening delimiter tartamtu lan diwenehi minangka dhaftar.

Concatenate lan gabungke dhaptar (larik) nomer minangka strings:join(),str()

Ana kesalahan yen argumen kanggo nggabungake () minangka dhaptar sing unsur ora strings.

l = [0, 1, 2]

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

Kanggo concatenate dhaftar nomer menyang senar siji, aplikasi str () fungsi kanggo saben unsur ing dhaftar pangerten notasi kanggo Ngonversi nomer menyang senar, lan banjur gabung karo gabung ().

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

Bisa uga ditulis minangka ekspresi generator, yaiku versi generator saka pangerten dhaptar. Ekspresi generator dilampirake ing kurung, nanging kurung bisa diilangi yen ekspresi generator minangka argumen mung kanggo fungsi utawa metode.

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

ekspresi Generator umume duwe kauntungan saka nggunakake memori kurang saka pangerten dhaftar, nanging ora ana kauntungan tartamtu kanggo nggunakake ekspresi generator wiwit gabung () Ngonversi generator kanggo dhaptar ing Processing internal. Nyatane, luwih cepet nggunakake pangerten dhaptar saka wiwitan.

Kanggo informasi luwih lengkap babagan pangerten dhaptar lan ekspresi generator, deleng artikel ing ngisor iki.

Copied title and URL