الفرق بين المراجعتين لصفحة: «Python/itertools/tee»
إضافة الصّفحة |
لا ملخص تعديل |
||
سطر 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 في بايثون]]. | ||
* الدّالة <code>[[Python/itertools/dropwhile|itertools.dropwhile()]]</code> التّي تبدأ في إعادة القيم عند عدم تحقّق شرط العبارة المنطقيّة. | |||
*الدّالة <code>[[Python/filter|filter()]]</code>: لترشيح عناصر كائن قابل للتّكرار حسب تعبير شرطيّ. | |||
* | |||
== مصادر == | == مصادر == | ||
* [https://docs.python.org/3/library/itertools.html#itertools.takewhile قسم الدالة itertools.takewhile في توثيق Python الرسمي]. | * [https://docs.python.org/3/library/itertools.html#itertools.takewhile قسم الدالة itertools.takewhile في توثيق Python الرسمي]. |
مراجعة 11:16، 18 يونيو 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
انظر أيضًا
- المكرِّرات Iterators في بايثون.
- المولدات Generators في بايثون.
- الدّالة
itertools.dropwhile()
التّي تبدأ في إعادة القيم عند عدم تحقّق شرط العبارة المنطقيّة.
- الدّالة
filter()
: لترشيح عناصر كائن قابل للتّكرار حسب تعبير شرطيّ.