MaxReve نشر 30 أكتوبر 2015 أرسل تقرير نشر 30 أكتوبر 2015 أحاول حذف حروف معينة من سلسلة نصية باستخدام بايثون، حاولت استخدام الشيفرة البرمجية التالية لكن يبدوا لي أنها لا تقوم بأي شيء للسلسلة النصية:for char in line: if char in " ?.!/;:": line.replace(char,'') فما هي الطريقة الصحيحة لفعل ذلك؟ اقتباس
0 هشام رزق الله نشر 30 أكتوبر 2015 أرسل تقرير نشر 30 أكتوبر 2015 السلاسل النصية في بايثون غير قابلة للتغيير، وبسبب هذا فإن تأثير هذه التعليمة line.replace(...) محدود وسيكون بإنشاء سلسلة نصية جديدة بدلا من تغيير السلسلة القديمة، يجب عليك في هذه الحالة إلى إعادة تعيين القيمة إلى line حتى تتمكن من جعل المتغير يحصل على القيمة الجديدة بدون الأحرف المحذوفة.بالإضافة إلى ذلك فإن الطريقة التي اقترحتها تعتبر بطيئة نوعا ما، لذ أنصحك باستخدام دالة translate كما في المثال التالي:line = line.translate(None, '!@#$') أو يمكنك استخدام التعابير النمطية كما في هذا المثال:import re line = re.sub('[!@#$]', '', line) المصدر اقتباس
السؤال
MaxReve
أحاول حذف حروف معينة من سلسلة نصية باستخدام بايثون، حاولت استخدام الشيفرة البرمجية التالية لكن يبدوا لي أنها لا تقوم بأي شيء للسلسلة النصية:
فما هي الطريقة الصحيحة لفعل ذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.