TheProgrammer نشر 24 أكتوبر 2015 أرسل تقرير نشر 24 أكتوبر 2015 أريد حذف مجموعة من الحروف في سلسلة نصية، جربت هذه الطريقة لكنها طويلة جدا:string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')... فهل توجد طريقة أبسط من هذه الطريقة؟ أريد وضع جميع الحروف التي أرغب بحذفها في قائمة بعينة كما في المثال التالي:list = [',', '!', '.', ';'...] فكيف أستطيع فعل ذلك؟ اقتباس
0 هشام رزق الله نشر 24 أكتوبر 2015 أرسل تقرير نشر 24 أكتوبر 2015 هنالك طرق مختلفة لحذف مجموعة من الأحرف الموجودة في قائمة معينة فيمكنك أن تستخدم الدالة المدمجة 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' المصدر اقتباس
السؤال
TheProgrammer
أريد حذف مجموعة من الحروف في سلسلة نصية، جربت هذه الطريقة لكنها طويلة جدا:
فهل توجد طريقة أبسط من هذه الطريقة؟ أريد وضع جميع الحروف التي أرغب بحذفها في قائمة بعينة كما في المثال التالي:
فكيف أستطيع فعل ذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.