• 0

كيف أُزيل حروف معينة من سلسلة نصية في بايثون؟

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

for char in line:
    if char in " ?.!/;:":
        line.replace(char,'')

فما هي الطريقة الصحيحة لفعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

السلاسل النصية في بايثون غير قابلة للتغيير، وبسبب هذا فإن تأثير هذه التعليمة line.replace(...) محدود وسيكون بإنشاء سلسلة نصية جديدة بدلا من تغيير السلسلة القديمة، يجب عليك في هذه الحالة إلى إعادة تعيين القيمة إلى line حتى تتمكن من جعل المتغير يحصل على القيمة الجديدة بدون الأحرف المحذوفة.
بالإضافة إلى ذلك فإن الطريقة التي اقترحتها تعتبر بطيئة نوعا ما، لذ أنصحك باستخدام دالة translate كما في المثال التالي:

line = line.translate(None, '!@#$')

أو يمكنك استخدام التعابير النمطية كما في هذا المثال:

import re
line = re.sub('[!@#$]', '', line)

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن