0Pricing
Python Academy · درس

اختصارات القوائم البرمجية

أنشئ القوائم بإيجاز باستخدام صياغة الاختصارات مع الشروط

اختصارات القوائم البرمجية درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

مقدمة

تنشئ استيعابات القوائم قوائم جديدة من الكائنات القابلة للتكرار ضمن تعبير واحد واضح، لتحل محل أنماط حلقات for الشائعة.

الصياغة الأساسية

‏[expression for item in iterable] هي الصيغة الأساسية. وينتج عن [x*2 for x in range(5)] ‎[0,2,4,6,8]‎.
doubled = [x*2 for x in range(5)]
print(doubled)

مع شرط

تعمل [x for x in range(10) if x%2==0] على تصفية الأعداد الزوجية. يأتي شرط if بعد عبارة for.
evens = [x for x in range(10) if x % 2 == 0]
print(evens)

تحويل السلاسل النصية

تطبّق [word.upper() for word in words] الدالة upper() على كل سلسلة نصية. وتعمل مع أي كائن قابل للتكرار.
words = ['hello', 'world']
print([w.upper() for w in words])

الاستيعاب المتداخل

يُعد [x for row in matrix for x in row] استيعابًا متداخلًا مسطّحًا؛ إذ يُقرأ من اليسار إلى اليمين، وتأتي الحلقة الخارجية أولًا.
matrix = [[1,2,3],[4,5,6]]
flat = [x for row in matrix for x in row]
print(flat)

if/else في التعبير

يستخدم [x if x>0 else 0 for x in lst] التعبير الثلاثي في جزء التعبير، أي قبل for وليس بعده.
lst = [-1, 2, -3, 4]
clipped = [x if x > 0 else 0 for x in lst]
print(clipped)

الاستيعاب مقابل map/filter

يعادل [f(x) for x in it if cond(x)]‎ ‎list(map(f, filter(cond, it)))‎، لكنه أوضح قراءةً.
nums = range(10)
result = [x**2 for x in nums if x%2==0]
print(result)

تسطيح البيانات باستخدام الاستيعاب

عند وجود مستويين أو أكثر من التداخل، يمكن للاستيعاب تسطيح البيانات: ‎[[1,2],[3,4]] → [1,2,3,4]‎.
nested = [[1,2],[3,4],[5]]
flat = [x for sub in nested for x in sub]
print(flat)

الاستيعاب مع enumerate()

ينتج [(i, x) for i, x in enumerate(lst)] قائمة من أزواج الفهرس والقيمة.
colors = ['red', 'green', 'blue']
indexed = [(i, c) for i, c in enumerate(colors)]
print(indexed)

الاستيعاب مع zip()

تجمع [a+b for a, b in zip(lst1, lst2)] العناصر المناظرة في قائمتين.
a = [1, 2, 3]
b = [10, 20, 30]
print([x+y for x,y in zip(a,b)])

متى لا تستخدم الاستيعابات

إذا كان المنطق معقدًا أو يحتاج إلى تأثيرات جانبية، فاستخدم حلقة for عادية. ينبغي أن تبقى الاستيعابات في أسطر واحدة.
# Too complex for comprehension:
result = []
for x in range(10):
    if x > 5:
        result.append(x * x)
print(result)

تحقق سريع

في استيعاب قائمة يحتوي على شرط وتعبير ثلاثي، أين يوضع التعبير الثلاثي؟

خلاصة

استيعابات القوائم: [expr for x in it if cond]. يوضع التعبير الثلاثي في جزء التعبير: [x if cond else y for x in it]. استخدمها للتحويلات المسطّحة والواضحة.

واصل التقدم

ممتاز! تابع إلى الدرس التالي لتعميق مهاراتك.

الأسئلة الشائعة

هل درس «اختصارات القوائم البرمجية» مجاني؟

نعم — نص درس «اختصارات القوائم البرمجية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «اختصارات القوائم البرمجية»؟

أنشئ القوائم بإيجاز باستخدام صياغة الاختصارات مع الشروط تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «اختصارات القوائم البرمجية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. اختصارات القوائم البرمجية
  2. اختصارات المجموعات والقواميس
  3. تعبيرات المولّدات
  4. الكلمة المفتاحية yield
← العودة إلى Python Academy