مقدمة عن دالة str.translate()
تُعيد الدالة str.translate() نسخة من السلسلة النصية التي استدعتها، مع استبدال أو حذف أحرف معينة بناءً على جدول ترجمة (mapping table) يتم تمريره كمعامل. يتم إنشاء هذا الجدول بشكل أساسي باستخدام الدالة str.maketrans().
الصيغة العامة (Syntax)
str.translate(table)المعاملات (Parameters)
table: كائن من نوعtable(أو قاموس) يمثل جدول الترجمة الذي ستستخدمه الدالة لتعديل السلسلة النصية. يمكن إنشاء هذا الكائن باستخدام الدالةstr.maketrans()أو تمرير قاموس مباشر حيث تكون المفاتيح هي قيم ASCII/Unicode للأحرف المراد استبدالها، والقيم هي الأحرف الجديدة (أو سلاسل نصية) أوNoneللحذف.
قيمة الإرجاع (Return Value)
تُرجع الدالة نسخة جديدة ومعدلة من السلسلة النصية الأصلية.
أمثلة عملية على استخدام str.translate()
المثال الأول: استبدال حرف واحد
في هذا المثال، سنقوم بإنشاء جدول ترجمة لاستبدال جميع occurrences للحرف 'a' بالحرف '-'.
s = 'harmash.com'
# إنشاء جدول ترجمة لاستبدال 'a' بـ '-'
dictionary = str.maketrans('a', '-')
print(s)
print(s.translate(dictionary))الناتج:
harmash.com
h-rm-sh.comالمثال الثاني: استبدال عدة أحرف وحذف أحرف
هنا، نستخدم str.maketrans() بثلاثة معاملات لتبديل 'a' بـ '-'، و 'm' بـ '*'، وحذف الحرف 'o'.
s = 'harmash.com'
# إنشاء جدول ترجمة: 'a' بـ '-'، 'm' بـ '*'، وحذف 'o'
dictionary = str.maketrans('am', '-*', 'o')
print(s)
print(s.translate(dictionary))الناتج:
harmash.com
h-r*-sh.c*المثال الثالث: استبدال حرف وحذف حرف آخر
في هذا المثال، نستخدم str.maketrans() لتبديل الحرف 'a' بـ '-'، وحذف الحرف 'm'.
s = 'harmash.com'
# إنشاء جدول ترجمة: 'a' بـ '-'، وحذف 'm'
dictionary = str.maketrans('a', '-', 'm')
print(s)
print(s.translate(dictionary))الناتج:
harmash.com
h-r-sh.coالمثال الرابع: استخدام قاموس مباشر لجدول الترجمة
يمكن لـ str.maketrans() أن تقبل قاموسًا مباشرًا حيث تكون المفاتيح هي الأحرف المراد استبدالها، والقيم هي السلاسل النصية البديلة أو سلسلة نصية فارغة '' للحذف.
s = 'harmash.com'
# إنشاء جدول ترجمة باستخدام قاموس مباشر
translation_table = str.maketrans({
'h': 'XYZ', # استبدال 'h' بـ 'XYZ'
'a': '555', # استبدال 'a' بـ '555'
'.': '' # حذف النقطة '.'
})
print(s)
print(s.translate(translation_table))الناتج:
harmash.com
XYZ555rm555sXYZcom