الحاق و اتصال رشته ها در پایتون: + عملگرها، توابع پیوستن و غیره.

کسب و کار

در ادامه نحوه الحاق و پیوستن به string 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

عملکرد + از نوع متفاوت منجر به خطا می شود.

s1 = 'aaa'
s2 = 'bbb'

i = 100
f = 0.25

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

اگر می خواهید یک مقدار عددی (مثلاً نوع عدد صحیح int یا نوع ممیز شناور) را با یک رشته به هم بپیوندید، مقدار عددی را با 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

برای جزئیات بیشتر در مورد نحوه تعیین قالب به مقاله زیر مراجعه کنید.

از زمان پایتون 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

اگرچه فقط یک مثال از یک لیست در اینجا آورده شده است، اشیاء تکرار شونده دیگر مانند تاپل ها نیز می توانند به عنوان آرگومان هایی برای join() مشخص شوند.

بر خلاف join()، split() برای تقسیم رشته ای که توسط یک جداکننده خاص مشخص شده و به عنوان یک لیست به دست می آید استفاده می شود.

لیست ها (آرایه ها) اعداد را به عنوان رشته به هم متصل و ترکیب کنید:join()،str()

اگر آرگومان join() لیستی باشد که عناصر آن رشته نیستند، خطا رخ می دهد.

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