• 0

كيف أزيل قيمة None من قائمة بدون 0 في بايثون؟

لدي القائمة التالية:

L= [0, 23, 234, 89, None, 0, 35, 9]

وعندما أنفذ عليها هذا السطر:

L = filter(None, L)

أحصل على النتيجة التالية (لاحظ إزالة الأصفار):

[23, 234, 89, 35, 9]

فهل توجد طريقة في بايثون لحذف فقط None من السلسلة النصية؟

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


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

يوجد العديد من الطرق لفعل ذلك في لغة بايثون، فإذا كنت تستخدم الإصدار الثاني منه، يمكنك استخدام حلقة التكرار for مع الجملة الشرطية بدلا من filter كما في المثال التالي:

>>> L = [0, 23, 234, 89, None, 0, 35, 9]
>>> [x for x in L if x is not None]
[0, 23, 234, 89, 0, 35, 9]

وهنالك طريقة أخرى باستخدام filter لكنني لا أنصح باستخدامها وهي كالتالي:

>>> from operator import is_not
>>> from functools import partial
>>> L = [0, 23, 234, 89, None, 0, 35, 9]
>>> filter(partial(is_not, None), L)
[0, 23, 234, 89, 0, 35, 9]

أما لو كنت تستخدم الإصدار الثالث من بايثون، فيمكنك في هذه الحالة استخدام دوال list وfilter لحذف None كما في المثال التالي:

>>> L = [0, 23, 234, 89, None, 0, 35, 9]
>>> list(filter(None.__ne__, L))
[0, 23, 234, 89, 0, 35, 9]

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


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

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

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

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


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

تسجيل الدخول

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


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