شرح دالّتَي split() و join() في Python مع أمثلة عملية

دقائق القراءة: 4

مقدمة إلى التعامل مع النصوص في Python

عند العمل على النصوص في Python، ستحتاج كثيرًا إلى تقسيم السلسلة النصية إلى أجزاء أصغر، أو دمج مجموعة من الأجزاء لإنشاء نص واحد منسق. وهنا تبرز أهمية الدالتين split() وjoin()، إذ تُعدّان من أكثر الأدوات استخدامًا في معالجة النصوص داخل Python.

في هذا المقال، ستتعرف إلى طريقة عمل كل من split() وjoin()، مع أمثلة عملية تساعدك على فهم الاستخدامات الشائعة والأخطاء التي ينبغي تجنبها.

من المهم أيضًا معرفة أن Strings في Python غير قابلة للتعديل، أي إن استدعاء الدوال عليها لا يغيّر النص الأصلي، بل يعيد قيمة جديدة يمكنك التعامل معها لاحقًا.

شرح دوال split و join في Python لتقسيم النصوص ودمجها مع أمثلة برمجية

ما هي الدالة split() في Python؟

تُستخدم الدالة split() عندما تحتاج إلى تقسيم سلسلة نصية واحدة إلى عدة أجزاء أصغر. بعد تنفيذها، ستحصل عادةً على قائمة List تحتوي على المقاطع الناتجة من عملية التقسيم.

صيغة استخدام split()

<string>.split(sep, maxsplit)

في هذه الصيغة:

  • <string>: أي سلسلة نصية صالحة في Python.
  • sep: الفاصل الذي سيتم التقسيم بناءً عليه، ويجب أن يكون من النوع النصي string.
  • maxsplit: عدد مرات التقسيم المسموح بها.

شرح الوسيطات بالتفصيل

  • sep وسيط اختياري. إذا لم يتم تمريره، فستقوم Python بتقسيم النص اعتمادًا على المسافات البيضاء مثل المسافة العادية.
  • maxsplit وسيط اختياري أيضًا، والقيمة الافتراضية له هي -1، ما يعني تنفيذ التقسيم على جميع أماكن ظهور الفاصل.

إذا حددت maxsplit = 1، فسيتم التقسيم مرة واحدة فقط، وبالتالي ستحصل على جزأين. وبشكل عام، إذا تم التقسيم k مرات، فستحصل على k + 1 أجزاء.

أمثلة عملية على split() في Python

مثال 1: التقسيم باستخدام المسافات البيضاء افتراضيًا

لنبدأ بالنص التالي:

my_string = "I code for 2 hours everyday"

إذا استدعيت الدالة split() دون تمرير أي وسيطات:

my_string.split()

ستقوم Python بتقسيم النص عند كل مسافة، وتعيد قائمة تحتوي على الكلمات منفصلة.

مثال على استخدام split في Python لتقسيم النص اعتمادًا على المسافات

مثال 2: التقسيم باستخدام فاصلة comma

لنفترض أن لديك النص التالي الذي يحتوي على أسماء فواكه مفصولة بفواصل:

my_string = "Apples,Oranges,Pears,Bananas,Berries"

الآن يمكنك التقسيم باستخدام الفاصلة "," كالتالي:

my_string.split(",")

ستكون النتيجة قائمة تتكون من أسماء الفواكه، بحيث يصبح كل عنصر مستقلًا داخل القائمة.

تقسيم سلسلة نصية مفصولة بفواصل باستخدام split في Python

مثال 3: استخدام maxsplit لتقييد عدد مرات التقسيم

إذا أردت تنفيذ التقسيم مرتين فقط، يمكنك استخدام maxsplit بهذا الشكل:

my_string.split(",", 2)

شرح maxsplit في split داخل Python مع مثال على تحديد عدد مرات التقسيم

دعنا نفسّر النتيجة:

  1. بعد أول فاصلة، يتم فصل Apples عن بقية النص.
  2. بعد الفاصلة الثانية، يتم فصل Oranges.
  3. بما أن maxsplit يساوي 2، تتوقف العملية عند هذا الحد.

لذلك ستكون النتيجة النهائية عبارة عن ثلاثة عناصر:

  • Apples
  • Oranges
  • Pears,Bananas,Berries

وهذا يوضح كيف يمكنك التحكم بدقة في عدد مرات تقسيم النص، وهي ميزة مفيدة جدًا عند تحليل البيانات النصية أو التعامل مع ملفات CSV أو المدخلات المهيكلة.

ما هي الدالة join() في Python؟

بعد أن تعلّمت كيفية تقسيم النص إلى أجزاء باستخدام split()، يأتي دور join() التي تقوم بالمهمة العكسية تقريبًا: دمج عدة سلاسل نصية داخل نص واحد باستخدام فاصل تحدده بنفسك.

صيغة استخدام join()

<sep>.join(<iterable>)

في هذه الصيغة:

  • <sep>: الفاصل الذي سيتم وضعه بين العناصر أثناء الدمج.
  • <iterable>: أي كائن قابل للتكرار في Python مثل list أو tuple ويحتوي على سلاسل نصية.

بمعنى آخر، تقوم join() بأخذ جميع العناصر النصية داخل iterable، ثم تربطها معًا باستخدام الفاصل المحدد.

أمثلة عملية على join() في Python

لنستخدم القائمة الناتجة من المثال السابق بعد تقسيم النص:

my_list = my_string.split("," )

بعد التنفيذ ستكون قيمة my_list كالتالي:

['Apples', 'Oranges', 'Pears', 'Bananas', 'Berries']

تنبيه مهم: الفاصل يجب أن يكون string

من الأخطاء الشائعة كتابة الفاصل دون علامات اقتباس، وهذا يؤدي إلى Syntax Error لأن Python تتوقع سلسلة نصية فعلية.

,.join(my_list)

خطأ شائع عند استخدام join في Python بدون وضع الفاصل كسلسلة نصية

مثال 1: دمج العناصر باستخدام فاصلة ومسافة

إذا أردت دمج العناصر باستخدام فاصلة يتبعها فراغ، فاستخدم:

", ".join(my_list)

ستحصل على نص واحد يحتوي على أسماء الفواكه مفصولة بشكل منسق وواضح.

مثال على دمج عناصر قائمة نصية باستخدام join في Python مع فاصلة ومسافة

مثال 2: استخدام فاصل مخصص

يمكنك اختيار أي فاصل يناسبك. على سبيل المثال، لاستخدام ثلاثة شرطات سفلية:

"___".join(my_list)

استخدام فاصل مخصص مع join في Python لدمج النصوص داخل قائمة

في هذه الحالة، سيتم دمج جميع عناصر القائمة داخل سلسلة نصية واحدة، ويفصل بينها الرمز ___.

متى تستخدم split() ومتى تستخدم join()؟

الدالة الاستخدام الأساسي نوع الناتج
split() تقسيم سلسلة نصية إلى أجزاء أصغر List
join() دمج مجموعة من السلاسل النصية في نص واحد String

يمكنك التفكير فيهما على أنهما أداتان متكاملتان:

  • استخدم split() عندما تحتاج إلى تحليل النص أو استخراج أجزائه.
  • استخدم join() عندما تريد إعادة بناء النص أو تنسيق المخرجات بشكل احترافي.

أفضل الممارسات عند التعامل مع split() و join()

  • تأكد دائمًا من أن الفاصل في join() مكتوب كسلسلة نصية بين علامات اقتباس.
  • استخدم maxsplit عندما لا تريد تقسيم النص بالكامل.
  • إذا كنت تعمل مع بيانات مفصولة برموز معينة مثل الفواصل أو الشرطة العمودية، فاختر sep المناسب بدقة.
  • تذكر أن join() يعمل بشكل صحيح عندما تكون عناصر iterable نصية.

ملخص سريع

  • <string>.split(sep, maxsplit) تُستخدم لتقسيم النص إلى أجزاء بناءً على فاصل محدد.
  • <sep>.join(<iterable>) تُستخدم لدمج العناصر النصية باستخدام فاصل معين.
  • الدالتان من أساسيات معالجة النصوص في Python، وتظهران كثيرًا في التطبيقات العملية وتحليل البيانات وأتمتة المهام.

الخلاصة التقنية

تُعدّ split() وjoin() من أهم دوال معالجة النصوص في Python، لأنهما تبسطان التعامل مع البيانات النصية بشكل كبير. إذا أتقنت فهم الفواصل وآلية عمل maxsplit وطبيعة العناصر التي تستقبلها join()، فستتمكن من كتابة شيفرات أنظف وأكثر مرونة في مشاريعك البرمجية. من الناحية العملية، هاتان الدالتان ضروريتان في قراءة المدخلات، تنظيف البيانات، وبناء النصوص المهيكلة بكفاءة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *