0Pricing
Competitive Programming Academy · درس

إنشاء المصفوفات بسرعة باستخدام الاستيعاب

قراءة الإدخال وتشكيله في سطر واحد

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

أنشئ القوائم في سطر واحد

ينشئ استيعاب القوائم قائمة من حلقة في تعبير واحد. وهو أقصر وأسرع، ويُعد الأسلوب المعتاد في المسابقات لتشكيل البيانات.

squares = [i * i for i in range(5)]

الشكل الأساسي

النمط هو [expr for item in iterable]. ويُنفّذ التعبير الموجود على اليسار مرة واحدة لكل عنصر تعيده الحلقة.

doubles = [x * 2 for x in nums]

اقرأ سطرًا من الأعداد الصحيحة

السطر الأكثر شيوعًا في المسابقات: قسّم الإدخال وحوّل كل رمز. وتحوّل هذه الخطوة النص إلى أعداد صحيحة بطريقة واضحة واحدة.

nums = [int(x) for x in input().split()]

تؤدي map() المهمة نفسها

تطبّق map(int, ...) الدالة int على كل رمز. استخدم list(...) لتحويل القيم إلى قائمة وإتاحتها للاستخدام المتكرر.

nums = list(map(int, input().split()))

التصفية أثناء البناء

أضف شرط if في النهاية للاحتفاظ بالعناصر التي تجتازه فقط. هنا تبقى الأعداد الزوجية فقط في الناتج.

evens = [x for x in nums if x % 2 == 0]

التحويل والتصفية معًا

يمكنك التحويل والتصفية في آن واحد: غيّر العناصر المحتفظ بها على اليسار، وصدِّرها باستخدام شرط if اللاحق.

out = [x * x for x in nums if x > 0]

إنشاء مصفوفة مملوءة بالأصفار

هل تحتاج إلى مصفوفة بحجم ثابت؟ ينشئ [0] * n عددًا من الأصفار يساوي n فورًا، وهو مثالي للعدادات وجداول البرمجة الديناميكية.

dp = [0] * n

احذر من تكرار القوائم الداخلية

استخدم comprehension لإنشاء شبكة ثنائية الأبعاد. ينشئ [[0] * c for _ in range(r)] صفوفًا مستقلة، بينما تشارك [[0] * c] * r صفًا واحدًا.

grid = [[0] * c for _ in range(r)]

الفهرسة باستخدام enumerate

عندما تحتاج إلى المواضع أيضًا، نفّذ الحلقة باستخدام enumerate لتحصل في كل خطوة على الفهرس والقيمة معًا بوضوح.

pairs = [(i, v) for i, v in enumerate(nums)]

قراءة مصفوفة كاملة

اجمع بين القراءة والتكرار لقراءة r صفوف من الأعداد دفعة واحدة، وبناء الشبكة كاملة في سطرين قصيرين.

grid = [list(map(int, input().split()))
        for _ in range(r)]

إصدارات set وdict

تبني الصياغة نفسها المجموعات والقواميس: استخدم الأقواس المعقوفة. تزيل {x for x in nums} التكرارات، وتبني أزواج key:value خريطة.

seen = {x for x in nums}

تحقق سريع

اختر التعبير الاصطلاحي الذي يقرأ سطرًا من الأعداد الصحيحة المفصولة بمسافات.

مراجعة: ابنِها بسرعة

يمكنك الآن بناء المصفوفات وتصفيتها وإعادة تشكيلها في سطر واحد، وقراءة المصفوفات الكاملة بسرعة. تجعل Comprehensions تحليل الإدخال مختصرًا وخاليًا من الأخطاء. 💡

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

هل درس «إنشاء المصفوفات بسرعة باستخدام الاستيعاب» مجاني؟

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

ماذا ستتعلم في «إنشاء المصفوفات بسرعة باستخدام الاستيعاب»؟

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

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

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

كم من الوقت يستغرق درس «إنشاء المصفوفات بسرعة باستخدام الاستيعاب»؟

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

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

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

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

  1. القوائم والفهرسة والتقطيع في CP
  2. إنشاء المصفوفات بسرعة باستخدام الاستيعاب
  3. ‏Min وMax وSum والمجاميع التراكمية
  4. العثور على الفهرس لا القيمة فقط
← العودة إلى Competitive Programming Academy