الفرق بين المراجعتين لصفحة: «Python/itertools/count»
إضافة الصّفحة |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>itertools.count()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة <code>itertools.count()</code> في بايثون}}</noinclude> | ||
تعيد الدّالة <code>itertools.count()</code> مُكرّرًا يُعيد قيمًا مُتساويّة الفرق بدءًا من قيمةٍ بدئيّة. عادة ما يُستخدم مع الدّالة | تعيد الدّالة <code>itertools.count()</code> مُكرّرًا يُعيد قيمًا مُتساويّة الفرق بدءًا من قيمةٍ بدئيّة. عادة ما يُستخدم مع الدّالة [[Python/map|<code>map()</code>]] لتوليد نقاط بيانات تسلسليّة. وتُستخدم كذلك مع الدّالة [[Python/zip|<code>zip()</code>]] لترقيم تسلسل معيّن. | ||
[[Python/map|map()]] لتوليد نقاط بيانات تسلسليّة. وتُستخدم كذلك مع الدّالة [[Python/zip|zip()]] لترقيم تسلسل معيّن. | |||
== البنية العامة == | == البنية العامة == | ||
سطر 19: | سطر 18: | ||
== أمثلة == | == أمثلة == | ||
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، لاحظ استعمال الدّالة next() للوصول إلى القيمة المواليّة في المُكرّر، وهذا لأنّ المُكرّر النّاتج لا متناهٍ، وتحويله إلى قائمة بالدّالة list() سيملأ الذّاكرة العشوائيّة (RAM): | المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، لاحظ استعمال الدّالة <code>[[Python/next|next()]]</code> للوصول إلى القيمة المواليّة في المُكرّر، وهذا لأنّ المُكرّر النّاتج لا متناهٍ، وتحويله إلى قائمة بالدّالة <code>[[Python/list|list()]]</code> سيملأ الذّاكرة العشوائيّة (RAM): | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
>>> c = itertools.count() | >>> c = itertools.count() | ||
سطر 54: | سطر 53: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
عند العدّ بالأعداد العشريّة، يُمكن الحصول أحيانًا على دقّة أفضل عبر استعمال شيفرة | عند العدّ بالأعداد العشريّة، يُمكن الحصول أحيانًا على دقّة أفضل عبر استعمال شيفرة مُضاعِفة كما يلي: | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
(start + step * i for i in itertools.count()) | (start + step * i for i in itertools.count()) | ||
سطر 99: | سطر 98: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* [[Python/iterators|المكرِّرات Iterators في بايثون]]. | * [[Python/iterators|المكرِّرات Iterators في بايثون]]. | ||
* [[Python/map|الدالة map() في بايثون]]. | * [[Python/map|الدالة <code>map()</code> في بايثون]]. | ||
* [[Python/zip|الدالة zip() في بايثون]]. | * [[Python/zip|الدالة <code>zip()</code> في بايثون]]. | ||
* [[Python/list|الدالة <code>list()</code> في بايثون]]. | |||
* [[Python/next|الدالة <code>next()</code> في بايثون]]. | |||
* [[Python/generators|المولدات Generators في بايثون]]. | * [[Python/generators|المولدات Generators في بايثون]]. | ||
مراجعة 02:07، 9 يونيو 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
انظر أيضًا
- المكرِّرات Iterators في بايثون.
- الدالة
map()
في بايثون. - الدالة
zip()
في بايثون. - الدالة
list()
في بايثون. - الدالة
next()
في بايثون. - المولدات Generators في بايثون.