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

من موسوعة حسوب
إضافة الصّفحة
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>itertools.takewhile()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>itertools.takewhile()‎</code> في بايثون}}</noinclude>
تعيد الدّالة <code>itertools.takewhile()‎</code> مُكرّرًا يُعيد العناصرَ من الكائن القابل للتّكرار المعطى ما دامت العبارة المنطقيّة المُعطاة (التي تكون دالّة تستقبل العنصر وتُعيد قيمة منطقيّة) تُساوي القيمة المنطقيّة True.
تعيد الدّالة <code>itertools.takewhile()‎</code> مُكرّرًا يُعيد العناصرَ من الكائن القابل للتّكرار المعطى ما دامت العبارة المنطقيّة المُعطاة (التي تكون دالّة تستقبل العنصر وتُعيد قيمة منطقيّة) تُساوي القيمة المنطقيّة <code>True</code>.


تعمل هذه الدّالة بطريقة مُعاكسة للدّالة <code>itertools.dropwhile()‎</code> التّي تبدأ في إعادة القيم عند عدم تحقّق شرط العبارة المنطقيّة.
تعمل هذه الدّالة بطريقة مُعاكسة للدّالة <code>[[Python/itertools/dropwhile|itertools.dropwhile()‎]]</code> التّي تبدأ في إعادة القيم عند عدم تحقّق شرط العبارة المنطقيّة.


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


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


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


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


== أمثلة ==
== أمثلة ==
سطر 46: سطر 46:
* [[Python/iterators|المكرِّرات Iterators في بايثون]].
* [[Python/iterators|المكرِّرات Iterators في بايثون]].
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/lambda-expressions|تعبير lambda]].
* الدّالة <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

انظر أيضًا

مصادر