الفرق بين المراجعتين لصفحة: «Python/itertools/dropwhile»
لا ملخص تعديل |
|||
سطر 56: | سطر 56: | ||
[[تصنيف:Python]] | [[تصنيف:Python]] | ||
[[تصنيف:Python Function]] | [[تصنيف:Python Function]] | ||
[[تصنيف:Python | [[تصنيف:Python Modules]] | ||
[[تصنيف:Python itertools]] |
مراجعة 01:34، 13 يونيو 2018
تعيد الدّالة itertools.dropwhile()
مُكرّرًا يُزيل العناصرَ من الكائن القابل للتّكرار المعطى ما دامت العبارة المنطقيّة المُعطاة (التي تكون دالّة تستقبل العنصر وتُعيد قيمة منطقيّة) تُساوي القيمة المنطقيّة True
؛ بعد أن تُخالف العبارة المنطقيّة قيمةً منطقيّة صحيحة، يستمرّ المُكرّر بإعادة العناصر المتبقيّة كلّها.
لاحظ أنّ المُكرّر لا يُنتج أي مُخرجات حتى تُساوي العبارة المنطقيّة القيمةَ False
، ما يعني أنّه قد يحتاج إلى وقت طويل للبدء في إعادة القيم.
البنية العامة
itertools.dropwhile(predicate, iterable)
المعاملات
predicate
العبارة المنطقيّة التي ستُحدّد ما إذا كان المُكرّر سيتوقّف عن تجاهل العناصر ويبدأ في إعادة بقيّة العناصر أو لا.
عادة ما تكون دالّة تستقبل العنصر، إن أعادت القيمة True
فسيُتجاهل العنصر، وما إن تُعيد القيمةَ False
حتى يبدأ المُكرّر بإعادة جميع العناصر المُتبقيّة كلّها.
iterable
الكائن القابل للتّكرار المرغوب إزالة العناصر منه ما دامت قيمة predicate
المُعادَة تُساوي True
.
القيمة المعادة
مُكرّر يحتوي على جميع العناصر منذ العنصر الذي أُعيدت له العبارة المنطقيّة القيمةَ False
.
أمثلة
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، هنا يُعيد المُكرّر جميع العناصر بدءًا من العنصر 6
لأنّه لا يُحقّق شرط تعبير lambda المُعطى:
>>> import itertools
>>> it = itertools.dropwhile(lambda x: x<5, [1,4,6,4,1])
>>> list(it)
[6, 4, 1]
لاحظ أنّ طريقة استعمال الدّالة مُشابهة لطريقة استعمال الدّالة filter()
.
ملاحظات
الدّالة مُكافئة لما يلي:
def dropwhile(predicate, iterable):
# dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1
iterable = iter(iterable)
for x in iterable:
if not predicate(x):
yield x
break
for x in iterable:
yield x