ربط السلاسل وربطها في Python: + عوامل التشغيل ، ربط الوظائف ، إلخ.

اعمال

فيما يلي وصف لكيفية ربط وربط سلسلة str في Python.

  • تسلسل ودمج سلاسل متعددة:+و+=المشغل أو العامل
  • اربط و اجمع بين الأرقام و السلاسل:+و+=المشغل أو العامل,str()وformat()وو- سلسلة
  • اربط ودمج قوائم (مصفوفات) السلاسل في سلسلة واحدة: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()وو- سلسلة

تؤدي العملية A + من نوع مختلف إلى حدوث خطأ.

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

راجع المقالة التالية للحصول على تفاصيل حول كيفية تحديد التنسيق.

منذ Python 3.6 ، تم أيضًا تقديم آلية تسمى f-strings (f-string) ، وهي أسهل في الكتابة من التنسيق ().

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])

استدعاء طريقة الانضمام () مع “سلسلة لإدراجها بين” وتمرير [قائمة السلاسل المراد توصيلها] كوسيطة.

إذا تم استخدام سلسلة فارغة ، فسيتم ربط [قائمة السلاسل المراد تسلسلها] ببساطة ، وإذا تم استخدام فاصلة ، فستكون السلاسل مفصولة بفواصل ، وإذا تم استخدام حرف سطر جديد ، فسيتم تسطير كل عنصر سلسلة جديد.

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 () ، يتم استخدام split () لتقسيم سلسلة محددة بواسطة محدد معين والحصول عليها كقائمة.

ربط ودمج قوائم (مصفوفات) الأرقام كسلاسل:join()وstr()

يحدث خطأ إذا كانت وسيطة الانضمام () عبارة عن قائمة عناصرها ليست سلاسل.

l = [0, 1, 2]

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

لتسلسل قائمة الأرقام في سلسلة واحدة ، قم بتطبيق الدالة str () على كل عنصر في تدوين list comprehension لتحويل الأرقام إلى سلسلة ، ثم قم بربطها بربط ().

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

يمكن أيضًا كتابته كتعبير منشئ ، وهو إصدار منشئ من list comprehensions. يتم وضع تعبيرات المولد بين قوسين ، ولكن يمكن حذف الأقواس إذا كان تعبير المولد هو الوسيطة الوحيدة لوظيفة أو طريقة.

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 () يحول المولدات إلى قوائم في معالجتها الداخلية. في الواقع ، من الأسرع قليلاً استخدام مفاهيم القوائم من البداية.

لمزيد من المعلومات حول قائمة الإدراك وتعبيرات المولد ، راجع المقالة التالية.