9.5 استيعاب القوائم
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على
- تحديد المكونات المختلفة لتعليمة استيعاب القوائم.
- تنفيذ التصفية باستخدام استيعاب القوائم.
استيعاب القوائم
استيعاب القوائم هو تعليمة في بايثون لإنشاء قائمة جديدة بشكل مدمج باستخدام نمط معين.
يظهر الشكل العام لتعليمة استيعاب القوائم فيما يلي.
list_name = [expression for loop_variable in iterable]
list_name يشير إلى اسم قائمة جديدة، يمكن أن يكون أي شيء، و for هي الكلمة المحجوزة لحلقة for. يحدد التعبيرُ العناصرَ التي ستُضاف إلى القائمة الجديدة. loop_variable هو مُتغيِّر الحلقة، و iterable هو كائن قابل للتكرار، مثل قائمة أو سلسلة نصية.
مثال 9.5
إنشاء قائمة جديدة باستخدام استيعاب القوائم
استيعاب القوائم الموضح أدناه في الشِفرة الثانية له نفس تأثير حلقة for العادية الموضحة في الشِفرة الأولى. القائمة الناتجة هي [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] في كلتا الحالتين.
إنشاء قائمة من المربعات باستخدام حلقة for.
# إنشاء قائمة فارغة.
squares_list = []
# إضافة عناصر إلى قائمة كمربعات أعداد تبدأ من 0 وتنتهي عند 9.
for i in range(10):
squares_list.append(i*i)
إنشاء قائمة من المربعات باستخدام استيعاب القوائم.
square_list = [i*i for i in range(10)]
يُطبَّق التعبيرُ i*i على كل قيمة يأخذها مُتغيِّر الحلقة i.
مثال 9.6
قصيدة للدكتور سوس
يمكن استخدام استيعاب القوائم لإنشاء قائمة بناءً على قائمة أخرى. في السطر 6، تمرّ حلقة for على عناصر القائمة poem_lines.
1 | # إنشاء قائمة كلمات |
2 | words_list = ["one", "two", "red", "blue"] |
3 | |
4 | # استخدام استيعاب القوائم لإنشاء قائمة جديدة باسم poem_lines |
5 | # إلحاق كلمة "fish" بكل كلمة في words_list |
6 | poem_lines = [w + " fish" for w in words_list] |
7 | for line in poem_lines: |
8 | print(line) |
مخرجات الشِفرة أعلاه:
one fish
two fish
red fish
blue fish
مفاهيم تطبيقية
استيعاب القوائم
التصفية باستخدام استيعاب القوائم
يمكن استخدام استيعاب القوائم لتصفية العناصر من قائمة معينة. ويُضاف شرط (condition) إلى استيعاب القوائم.
list_name = [expression for loop_variable in container if condition]
في استيعاب القوائم الخاص بالتصفية، لا يُضاف العنصر إلى list_name إلا إذا تحقَّق الشرط.
مفاهيم تطبيقية
التصفية باستخدام استيعاب القوائم
لكل شِفرة تستخدم استيعاب القوائم، اختر القائمة الناتجة الصحيحة في new_list.
جرّب بنفسك
اختيار الكلمات المكونة من خمسة أحرف
اكتب برنامجًا ينشئ قائمة بالكلمات المكونة من خمسة أحرف فقط من القائمة المعطاة ويطبع القائمة الجديدة.
جرّب بنفسك
كتب تبدأ بحرف "A"
اكتب برنامجًا يختار الكلمات التي تبدأ بحرف "A" في القائمة المعطاة. تأكد من أن القائمة الجديدة مرتبة أبجديًا. أخيرًا، اطبع القائمة الجديدة المرتبة.