• 0

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

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

string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...

فهل توجد طريقة أبسط من هذه الطريقة؟ أريد وضع جميع الحروف التي أرغب بحذفها في قائمة بعينة كما في المثال التالي:

list = [',', '!', '.', ';'...]

فكيف أستطيع فعل ذلك؟

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


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

هنالك طرق مختلفة لحذف مجموعة من الأحرف الموجودة في قائمة معينة فيمكنك أن تستخدم الدالة المدمجة translate كما يظهر في المثال التالي:

>>> chars_to_remove = ['.', '!', '?']
>>> subj = 'A.B!C?'
>>> subj.translate(None, ''.join(chars_to_remove))
'ABC'

حيث أن subj هي السلسلة النصية التي تريد حذف الأحرف منها.
أما الطريقة الثانية فهي عن طريق التكرار على جميع الأحرف الموجودة في سلسلة نصية معينة ومن ثم حذف الحرف إذا كان موجود في قائمة الحروف التي يجب حذفها كما في المثال التالي:

>>> sc = set(chars_to_remove)
>>> ''.join([c for c in subj if c not in sc])
'ABC'

كما يمكنك أيضا إنشاء تعبير نمطي عن طريق استخدام دالة sub من مكتبة re كما في هذا المثال:

>>> import re
>>> rx = '[' + re.escape(''.join(chars_to_remove)) + ']'
>>> re.sub(rx, '', subj)
'ABC'

المصدر

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


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

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

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

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


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

تسجيل الدخول

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


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