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

من موسوعة حسوب
لا ملخص تعديل
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 59: سطر 59:
* [[Python/iterators|المكرِّرات Iterators في بايثون]].
* [[Python/iterators|المكرِّرات Iterators في بايثون]].
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/zip|الدالة <code>zip()‎</code> في بايثون]].
* الدالة <code>[[Python/zip|zip()‎]]</code>: تُركّب عناصر الكائنات القابلة للتّكرار المُعطاة.
* [[Python/list|الدالة <code>list()‎</code> في بايثون]].
* الدالة <code>[[Python/zip|list()‎]]</code>: تُحوّل كائنًا قابلًا للتّكرار إلى قائمة.


== مصادر ==
== مصادر ==
سطر 66: سطر 66:
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Function]]
[[تصنيف:Python Function]]
[[تصنيف:Python Built-in Functions]]
[[تصنيف:Python itertools]]

المراجعة الحالية بتاريخ 06:13، 19 يونيو 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

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

انظر أيضًا

مصادر