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

من موسوعة حسوب
إضافة الصّفحة
 
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 2: سطر 2:
تعيد الدّالة <code>itertools.repeat()‎</code> مُكرّرًا يُعيد كائنًا مرارًا وتكرارًا بشكل لا نهائي أو لعدد مُحدّد من المرّات.
تعيد الدّالة <code>itertools.repeat()‎</code> مُكرّرًا يُعيد كائنًا مرارًا وتكرارًا بشكل لا نهائي أو لعدد مُحدّد من المرّات.


تُستخدم مع  [[Python/map|الدالة <code>map()‎</code>]] لاستدعاء دالّة عدّة مرّات بنفس المُعاملات. وتُستخدم كذلك مع [[Python/zip|الدالة <code>zip()‎</code>]]لإنشاء جزء لا يتغيّر في كلّ صفّ.
تُستخدم مع  [[Python/map|الدالة <code>map()‎</code>]] لاستدعاء دالّة عدّة مرّات بنفس المُعاملات. وتُستخدم كذلك مع الدالة <code>[[Python/zip|zip()‎]]</code> لإنشاء جزء لا يتغيّر في كلّ [[Python/tuples|صفّ]].


== البنية العامة ==
== البنية العامة ==
سطر 14: سطر 14:


=== <code>times</code> ===
=== <code>times</code> ===
عدد مرّات التّكرار.
مُعامل اختياريّ يُحدّد عدد مرّات التّكرار، يكون التّكرار لا نهائيًّا إن لم تُمرّر له أيّة قيمة.


== القيمة المعادة ==
== القيمة المعادة ==
مُكرّر يُعيد الكائن بشكل لا نهائيّ أو لعدد مُحدّد من المرّات حسب ما مُرِّرَ للمُعامل  <code>times</code>.
مُكرّر يُعيد الكائنَ بشكل لا نهائيّ أو لعدد مُحدّد من المرّات حسب ما مُرِّرَ للمُعامل  <code>times</code>.


== أمثلة ==
== أمثلة ==
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، نستعمل في المثال الأول الدالة <code>next()‎</code> للوصول إلى القيمة التّالية من المُكرّر، وهذا لأنّ تحويل مُكرّر لا نهائي إلى قائمة سيملأ الذّاكرة العشوائيّة:
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، نستعمل في المثال الأول الدالة <code>[[Python/next|next()‎]]</code> للوصول إلى القيمة التّالية من المُكرّر، وهذا لأنّ تحويل مُكرّر لا نهائي إلى [[Python/list|قائمة]] سيملأ الذّاكرة العشوائيّة:
<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
>>> i = itertools.repeat('ABC')
>>> i = itertools.repeat('ABC')
سطر 57: سطر 57:
* [[Python/iterators|المكرِّرات Iterators في بايثون]].
* [[Python/iterators|المكرِّرات Iterators في بايثون]].
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/generators|المولدات Generators في بايثون]].
* [[Python/map|الدالة <code>map()‎</code> في بايثون]]: تُطبّق دالة على كلّ عنصر من عناصر الكائن القابل للتّكرار.
* الدالة <code>[[Python/map|map()]]‎</code>: تُطبّق دالة على كلّ عنصر من عناصر الكائن القابل للتّكرار.
* [[Python/zip|الدالة <code>zip()‎</code> في بايثون]]: تُركّب عناصر الكائنات القابلة للتّكرار المُعطاة.
* الدالة <code>[[Python/zip|zip()]]‎</code>: تُركّب عناصر الكائنات القابلة للتّكرار المُعطاة.
* [[Python/list|الدالة <code>list()‎</code> في بايثون]]: تُحوّل كائنًا قابلًا للتّكرار إلى قائمة.
* الدالة <code>[[Python/list|list()]]‎</code>: تُحوّل كائنًا قابلًا للتّكرار إلى قائمة.
* [[Python/next|الدالة <code>next()‎</code> في بايثون]]: تُعيد العنصر التّالي من المُكرّر.
* الدالة <code>[[Python/next|next()‎]]</code>: تُعيد العنصر التّالي من المُكرّر.


== مصادر ==
== مصادر ==
* [https://docs.python.org/3/library/itertools.html#itertools.repeat قسم الدالة itertools.repeat في توثيق Python الرسمي].
* [https://docs.python.org/3/library/itertools.html#itertools.repeat قسم الدالة itertools.repeat في توثيق Python الرسمي].
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Function]]
[[تصنيف:Python Function]]
[[تصنيف:Python Modules]]
[[تصنيف:Python itertools]]
[[تصنيف:Python itertools]]

المراجعة الحالية بتاريخ 06:15، 19 يونيو 2018

تعيد الدّالة itertools.repeat()‎ مُكرّرًا يُعيد كائنًا مرارًا وتكرارًا بشكل لا نهائي أو لعدد مُحدّد من المرّات.

تُستخدم مع الدالة map()‎ لاستدعاء دالّة عدّة مرّات بنفس المُعاملات. وتُستخدم كذلك مع الدالة zip()‎ لإنشاء جزء لا يتغيّر في كلّ صفّ.

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

itertools.repeat(object[, times])

المعاملات

object

الكائن المُراد تكراره.

times

مُعامل اختياريّ يُحدّد عدد مرّات التّكرار، يكون التّكرار لا نهائيًّا إن لم تُمرّر له أيّة قيمة.

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

مُكرّر يُعيد الكائنَ بشكل لا نهائيّ أو لعدد مُحدّد من المرّات حسب ما مُرِّرَ للمُعامل times.

أمثلة

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

>>> i = itertools.repeat('ABC')
>>> next(i)
'ABC'
>>> next(i)
'ABC'
>>> next(i)
'ABC'

>>> i = itertools.repeat('ABC', 4)
>>> list(i)
['ABC', 'ABC', 'ABC', 'ABC']

وتمرير تيار من القيم الثّابتة إلى الدالة map()‎ أو الدالة zip()‎ من الاستعمالات الشّائعة للدّالة itertools.repeat()‎:

>>> list(map(pow, range(10), repeat(2)))
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

ملاحظات

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

def repeat(object, times=None):
    # repeat(10, 3) --> 10 10 10
    if times is None:
        while True:
            yield object
    else:
        for i in range(times):
            yield object

انظر أيضًا

مصادر