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

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


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

مراجعة 02:35، 9 يونيو 2018

تعيد الدّالة itertools.cycle()‎ مُكرّرًا يُعيد عناصر الكائن القابل للتّكرار المُعطى ويحفظ نسخة منه، عندما تنتهي قيم الكائن القابل للتّكرار، يُعيد المُكرّر عناصر النّسخة المحفوظة، ويُكرّر ذلك مرارًا وتكرارًا دون نهاية.

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

itertools.cycle(iterable)

المعاملات

iterable

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

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

مُكرّر يُعيد قيم الكائن المُعطى مرارًا وتكرارًا.

أمثلة

المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، لاحظ استعمال الدّالة next‎()‎ للوصول إلى القيمة المواليّة في المُكرّر، وهذا لأنّ المُكرّر النّاتج لا متناهٍ، وتحويله إلى قائمة بالدّالة list()‎ سيملأ الذّاكرة العشوائيّة (RAM):

>>> import itertools
>>> c = itertools.cycle('ABC')
>>> next(c)
'A'
>>> next(c)
'B'
>>> next(c)
'C'
>>> next(c)
'A'
>>> next(c)
'B'
>>> next(c)
'C'
>>> next(c)
'A'
>>> next(c)
'B'
>>> next(c)
'C'
>>> next(c)
'A'

ملاحظات

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

def cycle(iterable):
    # cycle('ABCD') --> A B C D A B C D A B C D ...
    saved = []
    for element in iterable:
        yield element
        saved.append(element)
    while saved:
        for element in saved:
              yield element

لاحظ أنّ الدّالة قد تحتاج إلى مساحة تخزين كبيرة (اعتمادًا على حجم الكائن القابل للتّكرار).

انظر أيضًا

مصادر