اذهب إلى المحتوى

السؤال

نشر

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

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

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

Recommended Posts

  • 0
نشر

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

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

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

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

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...