البحث عن عناصر معينة في القوائم باستخدام دالة index() في Python

في برمجة Python، القوائم (lists) هي واحدة من أكثر هياكل البيانات استخدامًا نظرًا لمرونتها وسهولة التعامل معها. إذا كنت تتعامل مع قائمة وتريد البحث عن موقع عنصر معين داخل هذه القائمة، فإن دالة index() هي أداة مثالية للقيام بذلك. في هذه المقالة، سنتعرف على كيفية استخدام دالة index() للبحث عن عناصر معينة في القوائم.

ما هي دالة index() في Python؟

دالة index() هي دالة مدمجة في Python تُستخدم للبحث عن أول ظهور لعنصر معين داخل قائمة. عند العثور على العنصر، تُرجع الدالة الموقع (الفهرس) الخاص بهذا العنصر داخل القائمة. إذا لم يتم العثور على العنصر، فإن الدالة ستقوم بإرجاع خطأ ValueError.

صيغة دالة index()

تستخدم دالة index() الصيغة التالية:


list.index(element, start=0, end=None)

المعلمات:

  • element: العنصر الذي تبحث عنه في القائمة.
  • start: (اختياري) الفهرس الذي تبدأ منه عملية البحث.
  • end: (اختياري) الفهرس الذي تنتهي عنده عملية البحث.

أمثلة على استخدام دالة index()

دعونا نلقي نظرة على بعض الأمثلة العملية التي توضح كيفية استخدام دالة index() للبحث عن عناصر في القوائم.

البحث عن عنصر في قائمة

إليك أبسط استخدام لدالة index()، حيث نقوم بالبحث عن عنصر معين داخل قائمة:


<?python
fruits = ["apple", "banana", "cherry", "date"]
index = fruits.index("cherry")
print("العنصر موجود في الفهرس:", index)
?>

في هذا المثال، نبحث عن العنصر “cherry” في القائمة. الناتج سيكون:

  • العنصر موجود في الفهرس: 2

البحث عن عنصر غير موجود في القائمة

إذا حاولت البحث عن عنصر غير موجود في القائمة، فإن دالة index() ستُرجع خطأ ValueError. إليك مثال:


<?python
fruits = ["apple", "banana", "cherry", "date"]
try:
    index = fruits.index("orange")
    print("العنصر موجود في الفهرس:", index)
except ValueError:
    print("العنصر غير موجود في القائمة.")
?>

في هذا المثال، نحاول البحث عن العنصر “orange” غير الموجود في القائمة. الناتج سيكون:

  • العنصر غير موجود في القائمة.

البحث باستخدام معلمة البدء (start)

يمكنك تحديد فهرس البدء للبحث عن العنصر باستخدام المعلمة start. في هذا المثال، نبدأ البحث من فهرس محدد:


<?python
numbers = [1, 2, 3, 2, 4, 2]
index = numbers.index(2, 2)
print("العنصر 2 موجود في الفهرس بعد الفهرس 2:", index)
?>

في هذا المثال، نبدأ البحث عن العنصر “2” بعد الفهرس 2. الناتج سيكون:

  • العنصر 2 موجود في الفهرس بعد الفهرس 2: 3

البحث باستخدام معلمة النهاية (end)

يمكنك تحديد فهرس النهاية للبحث عن العنصر باستخدام المعلمة end. في هذا المثال، نحدد نطاق البحث داخل القائمة:


<?python
numbers = [1, 2, 3, 2, 4, 2]
index = numbers.index(2, 0, 3)
print("العنصر 2 موجود في الفهرس بين الفهرس 0 و 3:", index)
?>

في هذا المثال، نبحث عن العنصر “2” بين الفهرسين 0 و 3. الناتج سيكون:

  • العنصر 2 موجود في الفهرس بين الفهرس 0 و 3: 1

البحث عن عناصر متكررة

إذا كان العنصر المطلوب موجودًا في القائمة أكثر من مرة، فإن دالة index() ستُرجع أول ظهور لهذا العنصر. إذا كنت بحاجة إلى البحث عن جميع ظهورات العنصر، يمكنك استخدام حلقة while مع الدالة index().


<?python
numbers = [1, 2, 3, 2, 4, 2]
index = 0
while index < len(numbers):
    try:
        index = numbers.index(2, index)
        print("العنصر 2 موجود في الفهرس:", index)
        index += 1
    except ValueError:
        break
?>

في هذا المثال، نبحث عن جميع ظهورات العنصر “2” في القائمة. الناتج سيكون:

  • العنصر 2 موجود في الفهرس: 1
  • العنصر 2 موجود في الفهرس: 3
  • العنصر 2 موجود في الفهرس: 5

مقارنة بين دالة index() ودوال أخرى

إليك مقارنة سريعة بين دالة index() ودوال أخرى تُستخدم للبحث عن عناصر داخل القوائم في Python:

  • find(): تُستخدم للبحث عن سلاسل نصية داخل سلاسل أخرى.
  • in: تُستخدم للتحقق مما إذا كان العنصر موجودًا في القائمة، لكنها لا تُرجع الفهرس.

الخلاصة

تُعتبر دالة index() في Python أداة قوية ومرنة للبحث عن عناصر داخل القوائم. مع استخدام المعلمات start و end، يمكنك التحكم في نطاق البحث وتحديد أجزاء معينة من القائمة. تأكد دائمًا من التعامل مع الأخطاء المحتملة مثل ValueError عند البحث عن عناصر غير موجودة. من خلال الأمثلة في هذه المقالة، يمكنك الآن استخدام index() بفعالية في برامجك للبحث عن العناصر داخل القوائم.