الفرق بين المراجعتين ل"Python/itertools/count"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
 
(مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة)
سطر 99: سطر 99:
 
* [[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>: تُعيد العنصر التّالي من المُكرّر.
  
 
== مصادر ==
 
== مصادر ==
سطر 108: سطر 108:
 
[[تصنيف:Python]]
 
[[تصنيف:Python]]
 
[[تصنيف:Python Function]]
 
[[تصنيف:Python Function]]
[[تصنيف:Python Modules]]
 
 
[[تصنيف:Python itertools]]
 
[[تصنيف:Python itertools]]

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

تعيد الدّالة itertools.count()‎ مُكرّرًا يُعيد قيمًا مُتساويّة الفرق بدءًا من قيمةٍ بدئيّة. عادة ما يُستخدم مع الدّالة map()‎ لتوليد نقاط بيانات تسلسليّة. وتُستخدم كذلك مع الدّالة zip()‎ لترقيم تسلسل معيّن.

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

itertools.count(start=0, step=1)

المعاملات

start

نقطة بداية العدّ.

step

الفرق بين كلّ قيمة والتي تليها.

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

مُكرّرٌ يُعيد قيمًا مُتساويّة الفرق حسب قيم المُعاملات المُمرّرة.

أمثلة

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

>>> c = itertools.count()
>>> next(c)
0
>>> next(c)
1
>>> next(c)
2
>>> next(c)
3
>>> next(c)
4

>>> c = itertools.count(10)
>>> next(c)
10
>>> next(c)
11
>>> next(c)
12

ملاحظات

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

def count(start=0, step=1):
    # count(10) --> 10 11 12 13 14 ...
    # count(2.5, 0.5) -> 2.5 3.0 3.5 ...
    n = start
    while True:
        yield n
        n += step

عند العدّ بالأعداد العشريّة، يُمكن الحصول أحيانًا على دقّة أفضل عبر استعمال شيفرة مُضاعِفة كما يلي:

(start + step * i for i in itertools.count())

وهذا مثال يشرح الفرق بين الطّريقتين:

>>> c = (2.5 + 0.1 * i for i in itertools.count())
>>> next(c)
2.5
>>> next(c)
2.6
>>> next(c)
2.7
>>> next(c)
2.8
>>> next(c)
2.9
>>> next(c)
3.0
>>> next(c)
3.1
>>> next(c)
3.2


>>> c = itertools.count(2.5, 0.1)
>>> next(c)
2.5
>>> next(c)
2.6
>>> next(c)
2.7
>>> next(c)
2.8000000000000003
>>> next(c)
2.9000000000000004
>>> next(c)
3.0000000000000004
>>> next(c)
3.1000000000000005

انظر أيضًا

مصادر