تقنية

translate في بايثون: هل يُحذف الحرف الذي أضافه الاستبدال؟

a تستبدل بـ bc، وb تحذف؛ ترجمة ab تعطي bc.
الحرف المضاف يبقى.

translate تعالج محارف النص الأصلي؛ البديل لا يُعالج مجددًا في الاستدعاء نفسه. [1]

الخلاصة السريعة

استبدال a بـ bc وحذف b الأصلي يعطي bc، وليس c. [1]

  • translate تعالج محارف النص الأصلي؛ البديل لا يُعالج مجددًا في الاستدعاء نفسه. [1]
  • ننشئ table=str.maketrans({"a":"bc","b":None})؛ None تعني الحذف، وmaketrans تحول مفاتيح المحارف إلى أعداد Unicode. [1]
  • مثال مؤلف شُغّل على CPython 3.12.14: s="ab"؛ s.translate(table) تعطي "bc". [1]
  • حُذف b الأصلي، وبقي b المضاف ضمن البديل bc. [1]
  • استدعاء translate على النتيجة مرة أخرى يعطي "c"؛ هذا استدعاء منفصل، ويظل s="ab". [1]

محارف الإدخال

translate تعالج محارف النص الأصلي؛ البديل لا يُعالج مجددًا في الاستدعاء نفسه. [1]

جدول الاستبدال

ننشئ table=str.maketrans({"a":"bc","b":None})؛ None تعني الحذف، وmaketrans تحول مفاتيح المحارف إلى أعداد Unicode. [1]

نتيجة الاستدعاء الأول

مثال مؤلف شُغّل على CPython 3.12.14: s="ab"؛ s.translate(table) تعطي "bc". [1]

s.translate(table) -> "bc" [1]

الاستدعاء الأول على ab يعطي bc، والثاني على bc يعطي c.
استدعاء مستقل على النتيجة.

الحرف المضاف والاستدعاء الثاني

حُذف b الأصلي، وبقي b المضاف ضمن البديل bc. [1]

"bc".translate(table) -> "c" [1]

استدعاء translate على النتيجة مرة أخرى يعطي "c"؛ هذا استدعاء منفصل، ويظل s="ab". [1]

المراجع

  1. Python — translate وmaketrans

للتوسع: تطبيع العربية.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.