Дараах нь Python дээр str стринг хэрхэн холбох, холбох тухай тайлбар юм.
- Олон мөрийг нэгтгэх, нэгтгэх:
+
,+=
оператор - Тоо болон мөрүүдийг хооронд нь холбож, нэгтгэ:
+
,+=
оператор,str()
,format()
,f-мөр - Мөрүүдийн жагсаалтыг (массив) нэгтгэж, нэг мөр болгон нэгтгэнэ:
join()
- Тоонуудын жагсаалтыг (массив) нэгтгэж, нэг мөр болгон нэгтгэнэ:
join()
,str()
Олон мөрийг нэгтгэх, нэгтгэх:+,+=оператор
холболт:+оператор
++ операторыг дараах мөрийн литерал болон мөрийн хувьсагчдыг хооронд нь холбоход ашиглаж болно
- …’
- “…”
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
холболт:+=оператор
Хуримтлагдсан хуваарилалтын оператор болох += операторыг мөн ашиглаж болно. Зүүн талд байгаа мөрийн хувьсагч нь баруун талд байгаа тэмдэгт мөртэй холбогдож, хуваарилагдаж, шинэчлэгддэг.
s1 += s2
print(s1)
# aaabbb
Хэрэв та мөрийн хувьсагчийн төгсгөлд стринг нэмэхийг хүсвэл мөрийн хувьсагч болон дурын мөрийн хувьсагчийг (эсвэл өөр мөрийн хувьсагч) += оператороор боловсруулна уу.
s = 'aaa'
s += 'xxx'
print(s)
# aaaxxx
Мөрийн литералуудын дараалсан холболт
Хэрэв та зүгээр л мөрийн литералуудыг зэрэгцүүлэн бичих юм бол мөрийн литералууд хоорондоо холбогдоно.
s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc
Хоёр мөрийн хоорондох зай эсвэл урвуу ташуу зураастай (үргэлжлэл гэж үзнэ) зөвшөөрөгдөх боломжтой.
s = 'aaa' 'bbb' 'ccc'
print(s)
# aaabbbccc
s = 'aaa'\
'bbb'\
'ccc'
print(s)
# aaabbbccc
Үүнийг кодын олон мөрөнд урт мөр бичих арга техник байдаг.
- Холбоотой нийтлэлүүд:Python дээр олон мөрөнд урт мөр бичих
Мөр хувьсагчийн хувьд энэ бичих аргыг ашиглах боломжгүй.
# s = s1 s2 s3
# SyntaxError: invalid syntax
Тоон ба мөрийг нэгтгэх/холбох:+,+=оператор,str(),format(),f-мөр
Өөр төрлийн A + үйлдэл нь алдаа гаргадаг.
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
Хэрэв та тоон утгыг (жишээ нь, бүхэл төрлийн int эсвэл хөвөгч цэгийн төрлийн float) тэмдэгт мөртэй холбохыг хүсвэл тоон утгыг str() ашиглан мөрийн төрөл болгон хөрвүүлж + оператор (эсвэл += оператор) -тай холбоно уу. ).
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25
Хэрэв та тэгээр дүүргэх эсвэл аравтын орон гэх мэт тооны форматыг хөрвүүлэхийг хүсвэл 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
Мэдээжийн хэрэг, хувьсагчийн утгыг форматлахгүйгээр шууд мөрөнд оруулах боломжтой. Үүнийг бичих нь + операторыг ашиглахаас хамаагүй хялбар юм.
s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25
Хэрхэн форматыг зааж өгөх талаар дэлгэрэнгүйг дараах нийтлэлээс үзнэ үү.
- Холбоотой нийтлэлүүд:Python дээр формат хөрвүүлэх, формат (0 дүүргэх, экспоненциал тэмдэглэгээ, арван зургаат тоо гэх мэт)
Python 3.6-аас хойш f-strings (f-string) гэж нэрлэгддэг механизмыг нэвтрүүлсэн бөгөөд үүнийг бичихэд 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
Мөрүүдийн жагсаалтыг (массив) холбож, нэгтгэнэ:join()
Тэмдэгт мөрийн жагсаалтыг нэг мөр болгон нэгтгэхэд join() аргыг ашиглаж болно.
Үүнийг хэрхэн бичихийг доор харуулав.
'String to be inserted between'.join([List of strings to be concatenated])
join() аргыг “хооронд нь оруулах мөр”-тэй дуудаж, [холбох мөрийн жагсаалт]-ыг аргумент болгон дамжуулна.
Хэрэв хоосон мөр ашигласан бол [холбох мөрийн жагсаалт] зүгээр л залгаж, таслал хэрэглэвэл тэмдэгт мөрүүдийг таслалаар, шинэ мөрийн тэмдэгт ашигласан бол мөрийн элемент бүрийг шинээр зурна.
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
Жагсаалтын зөвхөн жишээг энд өгсөн байгаа ч tuple гэх мэт давтагдах боломжтой бусад объектуудыг мөн нэгдэх аргумент болгон зааж өгч болно().
join()-ээс ялгаатай нь split() нь тодорхой хязгаарлагчаар тусгаарлагдсан мөрийг хувааж, жагсаалт хэлбэрээр авахад ашиглагддаг.
Тоонуудын жагсаалтыг (массив) мөр болгон нэгтгэж, нэгтгэ:join(),str()
Хэрэв нэгдэх () аргумент нь элементүүд нь мөр биш жагсаалт байвал алдаа гарна.
l = [0, 1, 2]
# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found
Тоонуудын жагсаалтыг нэг мөрөнд холбохын тулд жагсаалтын ойлгох тэмдэглэгээний элемент бүрт str() функцийг ашиглан тоонуудыг мөр болгон хөрвүүлж, дараа нь тэдгээрийг join()-оор нэгтгэнэ үү.
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
s = '-'.join(str(n) for n in l)
print(s)
# 0-1-2
Генераторын илэрхийлэл нь ерөнхийдөө жагсаалтын ойлголтоос бага санах ой ашиглах давуу талтай боловч join() нь дотоод боловсруулалтдаа генераторуудыг жагсаалт руу хөрвүүлдэг тул генераторын илэрхийллийг ашиглах нь онцгой давуу талгүй юм. Үнэн хэрэгтээ, жагсаалтын ойлголтыг эхнээс нь ашиглах нь арай хурдан юм.
Жагсаалтын ойлголт болон үүсгэгчийн илэрхийллийн талаар дэлгэрэнгүй мэдээллийг дараах нийтлэлээс үзнэ үү.
- Холбоотой нийтлэлүүд:Python жагсаалтын ойлголтыг хэрхэн ашиглах талаар