Berikut ialah penerangan tentang cara menggabungkan dan menyertai string str dalam Python.
- Menggabungkan dan menggabungkan berbilang rentetan:
+
,+=
pengendali - Menggabungkan dan menggabungkan nombor dan rentetan:
+
,+=
pengendali,str()
,format()
,rentetan f - Gabungkan dan gabungkan senarai (tatasusunan) rentetan menjadi satu rentetan:
join()
- Gabungkan dan gabungkan senarai (tatasusunan) nombor menjadi satu rentetan:
join()
,str()
Menggabungkan dan menggabungkan berbilang rentetan:+,+=pengendali
sambungan:+pengendali
Operator ++ boleh digunakan untuk menggabungkan literal rentetan dan pembolehubah rentetan berikut
- …’
- “…”
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:+=pengendali
Pengendali +=, pengendali tugasan kumulatif, juga boleh digunakan. Pembolehubah rentetan di sebelah kiri digabungkan dengan rentetan di sebelah kanan, dan diperuntukkan dan dikemas kini.
s1 += s2
print(s1)
# aaabbb
Jika anda ingin menambah rentetan pada penghujung pembolehubah rentetan, hanya proses pembolehubah rentetan dan sebarang literal rentetan (atau pembolehubah rentetan lain) dengan pengendali +=.
s = 'aaa'
s += 'xxx'
print(s)
# aaaxxx
Penggabungan berturut-turut literal rentetan
Jika anda hanya menulis literal rentetan sebelah menyebelah, literal rentetan akan digabungkan.
s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc
Ia boleh diterima untuk mempunyai ruang di antara dua baris atau pemisah garis segaris ke belakang (dianggap sebagai sambungan).
s = 'aaa' 'bbb' 'ccc'
print(s)
# aaabbbccc
s = 'aaa'\
'bbb'\
'ccc'
print(s)
# aaabbbccc
Terdapat teknik untuk menggunakan ini untuk menulis rentetan panjang pada berbilang baris dalam kod.
- artikel berkaitan:Menulis rentetan panjang pada berbilang baris dalam Python
Kaedah penulisan ini tidak mungkin untuk pembolehubah rentetan.
# s = s1 s2 s3
# SyntaxError: invalid syntax
Penggabungan/penggabungan berangka dan rentetan:+,+=pengendali,str(),format(),rentetan f
Operasi A + daripada jenis yang berbeza menghasilkan ralat.
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
Jika anda ingin menggabungkan nilai berangka (cth, integer jenis int atau floating-point type float) dengan rentetan, tukarkan nilai berangka kepada jenis rentetan dengan str() dan kemudian gabungkannya dengan operator + (atau += operator ).
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25
Jika anda ingin menukar format nombor, seperti pengisian sifar atau tempat perpuluhan, gunakan fungsi format() atau format kaedah rentetan().
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
Sudah tentu, ia juga mungkin untuk membenamkan nilai pembolehubah secara langsung dalam rentetan tanpa pemformatan. Ini lebih mudah untuk ditulis daripada menggunakan operator +.
s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25
Lihat artikel berikut untuk butiran tentang cara menentukan format.
- artikel berkaitan:Format penukaran dalam Python, format (0-pengisian, notasi eksponen, perenambelasan, dll.)
Sejak Python 3.6, mekanisme yang dipanggil f-strings (f-string) juga telah diperkenalkan, yang lebih mudah untuk ditulis daripada 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
Gabungkan dan gabungkan senarai (tatasusunan) rentetan:join()
Kaedah rentetan join() boleh digunakan untuk menggabungkan senarai rentetan menjadi rentetan tunggal.
Berikut adalah cara menulisnya.
'String to be inserted between'.join([List of strings to be concatenated])
Panggil kaedah join() dengan ‘rentetan untuk memasukkan antara’ dan lulus [senarai rentetan untuk digabungkan] sebagai hujah.
Jika rentetan kosong digunakan, [senarai rentetan yang akan digabungkan] akan digabungkan secara ringkas, jika koma digunakan, rentetan akan dipisahkan koma dan jika aksara baris baharu digunakan, setiap elemen rentetan akan dibarisi baharu.
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
Walaupun hanya contoh senarai diberikan di sini, objek lelaran lain seperti tupel boleh ditentukan sebagai argumen untuk menyertai() juga.
Berbeza dengan join(), split() digunakan untuk memisahkan rentetan yang dibatasi oleh pembatas tertentu dan mendapatkannya sebagai senarai.
Gabungkan dan gabungkan senarai (tatasusunan) nombor sebagai rentetan:join(),str()
Ralat berlaku jika hujah untuk menyertai() ialah senarai yang elemennya bukan rentetan.
l = [0, 1, 2]
# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found
Untuk menggabungkan senarai nombor menjadi rentetan tunggal, gunakan fungsi str() pada setiap elemen dalam tatatanda pemahaman senarai untuk menukar nombor menjadi rentetan, dan kemudian gabungkannya dengan join().
s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2
Ia juga boleh ditulis sebagai ungkapan penjana, yang merupakan versi penjana bagi pemahaman senarai. Ungkapan penjana disertakan dalam kurungan, tetapi kurungan boleh ditinggalkan jika ungkapan penjana adalah satu-satunya hujah kepada fungsi atau kaedah.
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
Ungkapan penjana umumnya mempunyai kelebihan menggunakan memori yang kurang daripada pemahaman senarai, tetapi tiada kelebihan khusus untuk menggunakan ungkapan penjana sejak join() menukar penjana kepada senarai dalam pemprosesan dalamannya. Malah, lebih cepat sedikit untuk menggunakan pemahaman senarai dari awal.
Untuk mendapatkan maklumat lanjut tentang pemahaman senarai dan ungkapan penjana, lihat artikel berikut.
- artikel berkaitan:Cara menggunakan pemahaman senarai Python