الدالة itertools.filterfalse()‎ في بايثون

من موسوعة حسوب
مراجعة 02:18، 10 يونيو 2018 بواسطة عبد-الهادي-الديوري (نقاش | مساهمات) (إضافة الصّفحة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تعيد الدّالة itertools.filterfalse()‎ مُكرّرًا يُرشّح عناصر الكائن القابل للتّكرار المُعطى مُعيدًا تلك فقط التي تُعيد لها العبارة المنطقيّة المُعطاة القيمة المنطقيّة False‎.

هذه الدّالة تعمل بطريقة مُعاكسة للدّالة filter()‎.

البنية العامة

itertools.filterfalse(predicate, iterable)

المعاملات

predicate

العبارة المنطقيّة (تكون عادة دالّة) تُحدّد ما إذا كان العنصر سيُعاد أو لا.

تُعاد العناصر فقط في حالة أعادت لها العبارة المنطقيّة المُعطاة القيمةَ False‎.

إن كانت قيمة هذا المُعامل تُساوي القيمة None‎ فستُعاد العناصر التّي تُساوي قيمتها المنطقيّة القيمة False‎.

iterable

الكائن القابل للتّكرار المرغوب ترشيحه.

القيمة المعادة

مُكرّر يحتوي على القيم التي أعادت لها لها العبارة المنطقيّة المُعطاة القيمةَ False‎.

أمثلة

المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، نستعمل هنا تعبير lambda لترشيح عناصر قائمة، العناصر التي يُعيدها المكرّر تكون ليست أكبر من 10:

>>> it = itertools.filterfalse(lambda x: x>10, [1, 4, 40, 5, 50, 65])
>>> list(it)
[1, 4, 5]

ملاحظات

الدّالة مُكافئة لما يلي:

def filterfalse(predicate, iterable):
    # filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8
    if predicate is None:
        predicate = bool
    for x in iterable:
        if not predicate(x):
            yield x

انظر أيضًا

مصادر