الفرق بين المراجعتين لصفحة: «Python/looping techniques»
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
== التابع <code>items()</code> == | == التابع <code>items()</code> == | ||
عند المرور على عناصر | عند المرور على عناصر [[Python/dict|قاموس]]، يمكن الحصول على المفتاح والقيمة المرتبطة به في نفس الوقت باستخدام التابع <code>items()</code>:<syntaxhighlight lang="python3"> | ||
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} | >>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} | ||
>>> for k, v in knights.items(): | >>> for k, v in knights.items(): | ||
سطر 22: | سطر 22: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== الدالة zip() == | == الدالة <code>zip()</code> == | ||
للمرور على عناصر تسلسلين أو أكثر في الوقت نفسه يمكن جمع المدخلات باستخدام الدالة <code>zip()</code>:<syntaxhighlight lang="python3"> | للمرور على عناصر تسلسلين أو أكثر في الوقت نفسه يمكن جمع المدخلات باستخدام الدالة <code>zip()</code>:<syntaxhighlight lang="python3"> | ||
>>> questions = ['name', 'quest', 'favorite color'] | >>> questions = ['name', 'quest', 'favorite color'] | ||
سطر 48: | سطر 48: | ||
== الدالة <code>sorted()</code> == | == الدالة <code>sorted()</code> == | ||
للمرور على عناصر تسلسل معيّن بطريقة مرتّبة، يمكن استخدام الدالة sorted() التي تعيد قائمة جديدة مرتّبة، ولا تقوم بتغيير ترتيب القائمة الأصلية:<syntaxhighlight lang="python3"> | للمرور على عناصر تسلسل معيّن بطريقة مرتّبة، يمكن استخدام الدالة <code>sorted()</code> التي تعيد [[Python/list|قائمة]] جديدة مرتّبة، ولا تقوم بتغيير ترتيب القائمة الأصلية:<syntaxhighlight lang="python3"> | ||
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] | >>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] | ||
>>> for f in sorted(set(basket)): | >>> for f in sorted(set(basket)): |
مراجعة 08:45، 15 مارس 2018
تقدّم بايثون مجموعة من الدوال والتوابع التي تسهّل عملية إنشاء الحلقات التكرارية والاستفادة منها بصورة فعّالة في القواميس والقوائم وغيرها:
التابع items()
عند المرور على عناصر قاموس، يمكن الحصول على المفتاح والقيمة المرتبطة به في نفس الوقت باستخدام التابع items()
:
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
... print(k, v)
...
gallahad the pure
robin the brave
الدالة enumerate()
يمكن الحصول على موقع الفهرس والقيمة المرتبطة به في نفس الوقت عند المرور على عناصر تسلسل معيّن باستخدام الدالة enumerate()
:
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
... print(i, v)
...
0 tic
1 tac
2 toe
الدالة zip()
للمرور على عناصر تسلسلين أو أكثر في الوقت نفسه يمكن جمع المدخلات باستخدام الدالة zip()
:
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
... print('What is your {0}? It is {1}.'.format(q, a))
...
What is your name? It is lancelot.
What is your quest? It is the holy grail.
What is your favorite color? It is blue.
الدالة reversed()
يمكن المرور بصورة عكسية على عناصر تسلسل معيّن باستخدام الدالة reversed()
، ولكن يجب في البداية تعيين التسلسل بالاتجاه الأمامي ثم استدعاء هذه الدالة لعكس الاتجاه:
>>> for i in reversed(range(1, 10, 2)):
... print(i)
...
9
7
5
3
1
الدالة sorted()
للمرور على عناصر تسلسل معيّن بطريقة مرتّبة، يمكن استخدام الدالة sorted()
التي تعيد قائمة جديدة مرتّبة، ولا تقوم بتغيير ترتيب القائمة الأصلية:
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> for f in sorted(set(basket)):
... print(f)
...
apple
banana
orange
pear
من الممكن إجراء تغييرات على القائمة أثناء المرور على عناصرها، ولكن إنشاء قائمة جديدة تعدّ طريقة أبسط وأكثر أمانًا:
>>> import math
>>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]
>>> filtered_data = []
>>> for value in raw_data:
... if not math.isnan(value):
... filtered_data.append(value)
...
>>> filtered_data
[56.2, 51.7, 55.3, 52.5, 47.8]
مصادر
- صفحة Data Structures في توثيق بايثون الرسمي.