استخدام دالة enumerate() للتعامل مع القوائم بفعالية في Python

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 21 سبتمبر 2024

محتوى المقال

استخدام دالة enumerate() للتعامل مع القوائم بفعالية في Python

عند التعامل مع القوائم في Python، قد تحتاج في بعض الأحيان إلى تتبع كل من الفهرس والقيمة في وقت واحد أثناء التكرار على القائمة. في هذه الحالة، تكون دالة enumerate() مفيدة للغاية، لأنها توفر طريقة سهلة وفعالة للحصول على كلا الفهرس والعنصر في نفس الوقت. في هذا المقال، سنتعرف على كيفية استخدام دالة enumerate() لتحسين فعالية الشيفرة عند التعامل مع القوائم.

ما هي دالة enumerate()؟

دالة enumerate() هي دالة مدمجة في Python تستخدم بشكل شائع عندما تحتاج إلى الحصول على فهرس العنصر وقيمته أثناء التكرار على قائمة أو أي كائن يمكن تكراره. تقوم هذه الدالة بإرجاع كائن يحتوي على أزواج من الفهرس والعنصر.

الصيغة العامة لدالة enumerate()

الصيغة العامة لاستخدام enumerate() هي كما يلي:

enumerate(iterable, start=0)

حيث:

  • iterable: الكائن الذي تريد التكرار عليه (مثل قائمة أو سلسلة).
  • start: رقم الفهرس الذي ترغب في أن يبدأ منه (افتراضيًا يبدأ من 0).

أهمية دالة enumerate() عند التعامل مع القوائم

تأتي فائدة enumerate() من القدرة على الجمع بين الحصول على العنصر والفهرس بشكل فعال دون الحاجة إلى إدارة الفهارس يدويًا باستخدام متغير خارجي. هذا يقلل من الأخطاء ويجعل الشيفرة أكثر وضوحًا وكفاءة.

مثال بسيط على استخدام enumerate()

إليك مثال بسيط يظهر كيف يمكنك استخدام enumerate() للتكرار على قائمة والحصول على الفهرس والعنصر في نفس الوقت:

<?php
fruits = ["تفاح", "موز", "كرز"];
for index, fruit in enumerate(fruits):
    print(f"الفهرس: {index}, الفاكهة: {fruit}")
<?php

الناتج سيكون:

  • الفهرس: 0، الفاكهة: تفاح
  • الفهرس: 1، الفاكهة: موز
  • الفهرس: 2، الفاكهة: كرز

تخصيص نقطة البداية في دالة enumerate()

إحدى الميزات المهمة لدالة enumerate() هي القدرة على تخصيص نقطة البداية للفهرسة. افتراضيًا، تبدأ الفهرسة من 0، لكن يمكنك تغيير ذلك باستخدام المعامل start.

مثال على تخصيص الفهرسة

إليك مثال يوضح كيفية تخصيص نقطة البداية للفهرسة لتكون 1 بدلاً من 0:

<?php
fruits = ["تفاح", "موز", "كرز"];
for index, fruit in enumerate(fruits, start=1):
    print(f"الفهرس: {index}, الفاكهة: {fruit}")
<?php

في هذا المثال، يتم البدء بالفهرسة من 1، وبالتالي سيكون الناتج:

  • الفهرس: 1، الفاكهة: تفاح
  • الفهرس: 2، الفاكهة: موز
  • الفهرس: 3، الفاكهة: كرز

دمج enumerate() مع الشرطيات

يمكنك استخدام دالة enumerate() بفعالية مع الشرطيات لتنفيذ عمليات معينة على عناصر محددة بناءً على الفهرس. على سبيل المثال، يمكنك تنفيذ عملية معينة فقط على العناصر التي تحتوي على فهرس معين.

مثال على استخدام enumerate() مع الشرطيات

في المثال التالي، نستخدم enumerate() لتجاهل العناصر التي تحتوي على فهرس زوجي:

<?php
fruits = ["تفاح", "موز", "كرز", "عنب", "مانجو"];
for index, fruit in enumerate(fruits):
    if index % 2 == 0:
        continue
    print(f"الفهرس: {index}, الفاكهة: {fruit}")
<?php

الناتج سيكون:

  • الفهرس: 1، الفاكهة: موز
  • الفهرس: 3، الفاكهة: عنب

مقارنة بين enumerate() والأساليب التقليدية

في كثير من الأحيان، يقوم المبرمجون الجدد باستخدام أساليب تقليدية للتعامل مع الفهارس والعناصر باستخدام حلقات for وrange()، ولكن enumerate() توفر طريقة أكثر فعالية وأقل عرضة للأخطاء. باستخدام الأساليب التقليدية، قد تحتاج إلى استخدام متغير خارجي لتتبع الفهرس:

<?php
fruits = ["تفاح", "موز", "كرز"];
index = 0
for fruit in fruits:
    print(f"الفهرس: {index}, الفاكهة: {fruit}")
    index += 1
<?php

كما ترى، نحتاج إلى استخدام متغير خارجي مثل index لتتبع الفهرس، وهذا قد يؤدي إلى أخطاء إذا نسينا تحديثه. بينما باستخدام enumerate()، يتم تبسيط هذا التتبع بدون الحاجة إلى إدارة الفهارس يدويًا.

الخلاصة

تعد دالة enumerate() أداة قوية ومفيدة في Python تسهل التعامل مع القوائم والأدوات الأخرى القابلة للتكرار بشكل فعال. باستخدامها، يمكنك الحصول على كل من الفهرس والعنصر بسهولة، مما يوفر الوقت ويقلل من تعقيد الشيفرة. من خلال استغلال الميزات الإضافية مثل تخصيص الفهرسة واستخدامها مع الشرطيات، يمكنك كتابة شيفرة أكثر نظافة وكفاءة.

طور مهاراتك: مقالات يجب قراءتها في البرمجة