8.5 تقسيم ودمج السلاسل النصية
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- استخدام التابع
split()لتقسيم سلسلة نصية إلى سلاسل فرعية. - دمج الكائنات في قائمة لتكوين سلسلة نصية واحدة باستخدام التابع
join().
split()
يمكن تقسيم سلسلة نصية في بايثون إلى سلاسل فرعية باستخدام فاصل. ويُسمّى الفاصل أيضًا مُحدِّدًا. يُقسِّم التابع split()، عند تطبيقه على سلسلة نصية، السلسلةَ النصية إلى سلاسل فرعية باستخدام الوسيط المُعطى كفاصل. مثال: "1-2".split('-') يُرجع قائمة من السلاسل الفرعية ["1", "2"]. إذا لم تُمرَّر أي وسائط إلى التابع split()، تُستخدم المسافات البيضاء فواصلَ. مثال: "1\t2\n3 4".split() يُرجع ["1", "2", "3", "4"].
مفاهيم تطبيقية
أمثلة على فواصل السلاسل النصية والتابع split()
join()
التابع join() عكس التابع split(): إذ تُدمَج قائمة من السلاسل النصية في سلسلة نصية واحدة. ويُدرَج الفاصل بين العناصر عند الدمج. مثال: ','.join(["this", "is", "great"]) يُرجع "this,is,great".
مفاهيم تطبيقية
تطبيق التابع join() على قائمة من السلاسل النصية
جرّب بنفسك
كلمات فريدة ومفصولة بفواصل
اكتب برنامجًا يقبل سلسلة من الكلمات المفصولة بفواصل كإدخال، ويطبع الكلمات في أسطر منفصلة. مثال: إذا أُعطيت السلسلة النصية "happy,smiling,face"، سيكون الإخراج كالتالي:
happy
smiling
face
جرّب بنفسك
طلب الغداء
استخدم التابع join() لإعادة طلب المستخدم في مطعم، مفصولًا بفواصل. يُدخِل المستخدم كل صنف طعام في سطر منفصل، وعند الانتهاء من الطلب يُدخِل سطرًا فارغًا. يختلف الناتج بحسب عدد الأصناف المطلوبة:
- إذا لم يدخل المستخدم شيئًا، يخرج البرنامج:
You ordered nothing. - إذا أدخل المستخدم صنفًا واحدًا (مثال: eggs)، يخرج البرنامج:
You ordered eggs. - إذا أدخل المستخدم صنفين (مثال: eggs, ham)، يخرج البرنامج:
You ordered eggs and ham. - إذا أدخل المستخدم ثلاثة أصناف أو أكثر (مثال: eggs, ham, toast)، يخرج البرنامج:
You ordered eggs, ham, and toast.
عند وجود ثلاثة أصناف أو أكثر، يُفصل بين كل صنف بفاصلة ومسافة، وتُضاف كلمة "and" قبل الصنف الأخير.