Python дээр мөрүүдийг холбох, холбох: + оператор, нэгдэх функц гэх мэт.

Бизнес эрхэлдэг

Дараах нь 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

Үүнийг кодын олон мөрөнд урт мөр бичих арга техник байдаг.

Мөр хувьсагчийн хувьд энэ бичих аргыг ашиглах боломжгүй.

# 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 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() нь дотоод боловсруулалтдаа генераторуудыг жагсаалт руу хөрвүүлдэг тул генераторын илэрхийллийг ашиглах нь онцгой давуу талгүй юм. Үнэн хэрэгтээ, жагсаалтын ойлголтыг эхнээс нь ашиглах нь арай хурдан юм.

Жагсаалтын ойлголт болон үүсгэгчийн илэрхийллийн талаар дэлгэрэнгүй мэдээллийг дараах нийтлэлээс үзнэ үү.

Copied title and URL