الفرق بين المراجعتين لصفحة: «Python/itertools/takewhile»

من موسوعة حسوب
لا ملخص تعديل
سطر 47: سطر 47:
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/lambda-expressions|تعبير lambda]].
* [[Python/lambda-expressions|تعبير lambda]].
* الدّالة <code>[[Python/itertools/dropwhile|itertools.dropwhile()‎]]</code>: لمُكرّر يبدأ بإعادة العناصر فقط عند تحقّق الشّرط.
* الدّالة <code>[[Python/itertools/dropwhile|itertools.dropwhile()‎]]</code>: لمُكرّر يبدأ بإعادة العناصر فقط عند ''عدم'' تحقّق الشّرط.


== مصادر ==
== مصادر ==

مراجعة 21:10، 17 يونيو 2018

تعيد الدّالة itertools.takewhile()‎ مُكرّرًا يُعيد العناصرَ من الكائن القابل للتّكرار المعطى ما دامت العبارة المنطقيّة المُعطاة (التي تكون دالّة تستقبل العنصر وتُعيد قيمة منطقيّة) تُساوي القيمة المنطقيّة True.

تعمل هذه الدّالة بطريقة مُعاكسة للدّالة itertools.dropwhile()‎ التّي تبدأ في إعادة القيم عند عدم تحقّق شرط العبارة المنطقيّة.

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

itertools.takewhile(predicate, iterable)

المعاملات

predicate

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

عادة ما تكون دالّة تستقبل العنصر، إن أعادت القيمة True فسيُعاد العنصر، وما إن تُعيد القيمةَ False حتى يتوقّف المُكرّر عن إعادة العناصر.

iterable

الكائن القابل للتّكرار المرغوب إعادة العناصر منه ما دامت قيمة predicate المُعادَة تُساوي True.

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

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

أمثلة

المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، هنا يُعيد المُكرّر جميع العناصر إلى العنصر 6 لأنّه لا يُحقّق شرط تعبير lambda المُعطى:

>>> it = itertools.takewhile(lambda x: x<5, [1,4,6,4,1])
>>> list(it)
[1, 4]

لاحظ أنّ طريقة استعمال الدّالة مُشابهة لطريقة استعمال الدّالة filter()‎.

ملاحظات

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

def takewhile(predicate, iterable):
    # takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4
    for x in iterable:
        if predicate(x):
            yield x
        else:
            break

انظر أيضًا

مصادر