القوائم والفهرسة والتقطيع في CP
الوصول والتقطيع والعكس دون أخطاء الواحد
القوائم والفهرسة والتقطيع في CP درس مجاني في Competitive Programming Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Competitive Programming Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
أداتك الأساسية في المسابقات
في Python التنافسية، تُعد list مصفوفتك الأساسية. فهي تخزّن العناصر بالترتيب وتنمو عند الحاجة، لذا تبدأ منها معظم المسائل.
a = [4, 1, 7, 3]الفهرسة من الصفر
تستخدم القوائم الفهرسة ذات الأساس الصفري، لذا فإن a[0] هو العنصر الأول. ونسيان ذلك هو خطأ مقدار واحد الكلاسيكي الذي يضيّع نقاطًا سهلة.
a = [4, 1, 7, 3]
print(a[0]) # 4الوصول إلى النهاية من الخلف
تُعدّ الفهارس السالبة من اليمين، لذا فإن a[-1] هو العنصر الأخير. ولا حاجة إلى حساب len(a) - 1 بنفسك.
a = [4, 1, 7, 3]
print(a[-1]) # 3ما طوله؟
استخدم len(a) للحصول على عدد العناصر. وتمتد الفهارس الصالحة من 0 إلى len(a) - 1، ولا تتجاوزه أبدًا.
a = [4, 1, 7, 3]
print(len(a)) # 4خذ شريحة
تأخذ الشريحة a[i:j] العناصر من الفهرس i حتى ما قبل j، من دون تضمينه. وتُستبعد النهاية اليمنى دائمًا.
a = [4, 1, 7, 3]
print(a[1:3]) # [1, 7]الشرائح المفتوحة النهاية
اترك أحد الطرفين فارغًا للوصول إلى الحافة. يأخذ a[:k] أول k من العناصر، بينما يأخذ a[k:] كل شيء بدءًا من k.
a = [4, 1, 7, 3]
print(a[:2], a[2:])تنقّل بخطوة محددة
الرقم الثالث هو الخطوة. يأخذ a[::2] كل عنصر ثانٍ، وهو مفيد لتقسيم العناصر إلى مواضع زوجية وفردية.
a = [4, 1, 7, 3]
print(a[::2]) # [4, 7]اعكس في خطوة واحدة
تقلب الخطوة -1 القائمة. ويعطي a[::-1] نسخة معكوسة من دون تعديل الأصلية، وهو أمر رائع للتحقق من المتناظرات.
a = [4, 1, 7, 3]
print(a[::-1]) # [3, 7, 1, 4]الشرائح تنشئ نسخًا
يعيد التقطيع قائمة جديدة، لذا فإن a[:] طريقة سريعة لإنشاء نسخة سطحية. ولن يؤدي تعديل النسخة إلى تغيير المصفوفة الأصلية.
b = a[:]
b[0] = 99 # a is untouchedالحدود الآمنة تمنع الأعطال
تؤدي قراءة a[len(a)] إلى رفع IndexError، وهو حكم خطأ وقت تشغيل فوري. تحقق دائمًا من أن الفهرس يقع داخل القائمة.
if i < len(a):
use(a[i])التقطيع لا يسبب أعطالًا
بخلاف الفهرسة، فإن الشريحة الخارجة عن النطاق متسامحة. فـ a[2:99] تعيد ببساطة ما هو موجود، وتقتطع النهاية بهدوء.
a = [4, 1, 7, 3]
print(a[2:99]) # [7, 3]اختبار سريع
اختبر حدسك بشأن التقطيع على قائمة صغيرة.
مراجعة: أساسيات القوائم
يمكنك الآن الفهرسة من الطرفين، وتقطيع النطاقات، واستخدام الخطوات، والعكس بأمان. وتشكل هذه أساسيات القوائم قاعدة كل مسألة مصفوفات قادمة. 🚀
الأسئلة الشائعة
هل درس «القوائم والفهرسة والتقطيع في CP» مجاني؟
نعم — نص درس «القوائم والفهرسة والتقطيع في CP» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Competitive Programming Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
ماذا ستتعلم في «القوائم والفهرسة والتقطيع في CP»؟
الوصول والتقطيع والعكس دون أخطاء الواحد تتمرن على Competitive Programming Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Competitive Programming Academy؟
لا تُشترط خبرة سابقة. Competitive Programming Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «القوائم والفهرسة والتقطيع في CP»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Competitive Programming Academy هذا؟
نعم. كل درس في Competitive Programming Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- القوائم والفهرسة والتقطيع في CP
- إنشاء المصفوفات بسرعة باستخدام الاستيعاب
- Min وMax وSum والمجاميع التراكمية
- العثور على الفهرس لا القيمة فقط