فهم دالة للتحقق من جميع الشروط في القوائم في Python

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

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

محتوى المقال

فهم دالة للتحقق من جميع الشروط في القوائم في Python

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

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

دالة all()

دالة all() تتحقق مما إذا كانت **جميع العناصر** في قائمة أو مجموعة تفي بشرط معين. إذا كانت جميع العناصر تفي بالشرط، فإن all() تُعيد True، وإذا كان هناك عنصر واحد على الأقل لا يفي بالشرط، فإنها تُعيد False.

الدالة all() تأخذ iterable (مثل قائمة أو مجموعة) كمدخل، وتُعيد True فقط إذا كانت جميع القيم في هذا الـ iterable هي قيم صحيحة (truthy).

مثال 1: التحقق مما إذا كانت جميع الأرقام في القائمة موجبة

# قائمة من الأرقام
numbers = [1, 2, 3, 4, 5]

# التحقق مما إذا كانت جميع الأرقام موجبة
result = all(num > 0 for num in numbers)

print('هل جميع الأرقام موجبة؟', result) # الناتج: True

في هذا المثال، دالة all() تتحقق مما إذا كانت جميع الأرقام في القائمة أكبر من الصفر. بما أن جميع الأرقام موجبة، فإن الدالة تُعيد True.

دالة any()

على النقيض من all()، دالة any() تُعيد True إذا كان **أي عنصر واحد على الأقل** في القائمة يفي بالشرط المحدد. وإذا لم يفي أي عنصر بالشرط، فإنها تُعيد False.

مثال 2: التحقق مما إذا كان أي رقم في القائمة سالبًا

# قائمة من الأرقام
numbers = [1, 2, 3, -4, 5]

# التحقق مما إذا كان هناك أي رقم سالب
result = any(num < 0 for num in numbers)

print('هل يوجد رقم سالب؟', result) # الناتج: True

في هذا المثال، دالة any() تتحقق مما إذا كان هناك أي رقم سالب في القائمة. بما أن -4 سالب، فإن الدالة تُعيد True.

أمثلة عملية على استخدام all() وany()

مثال 3: التحقق من صحة كلمات المرور

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

# قائمة بكلمات المرور
passwords = ['pass1234', 'mypassword', 'admin2023', 'short']

# التحقق من أن جميع كلمات المرور أطول من 8 أحرف
result = all(len(pwd) > 8 for pwd in passwords)

print('هل جميع كلمات المرور طويلة بما فيه الكفاية؟', result) # الناتج: False

في هذا المثال، يتم التحقق من أن جميع كلمات المرور في القائمة أطول من 8 أحرف. نظرًا لوجود كلمة مرور قصيرة (short)، فإن الدالة تُعيد False.

مثال 4: التحقق مما إذا كان يوجد رقم زوجي في القائمة

باستخدام any()، يمكننا التحقق مما إذا كانت القائمة تحتوي على أي رقم زوجي.

# قائمة من الأرقام
numbers = [1, 3, 5, 7]

# التحقق مما إذا كان يوجد رقم زوجي
result = any(num % 2 == 0 for num in numbers)

print('هل يوجد رقم زوجي؟', result) # الناتج: False

في هذا المثال، القائمة تحتوي فقط على أرقام فردية، لذا تُعيد دالة any() False.

استخدام all() وany() مع القوائم الفارغة

من المهم معرفة كيف تتصرف الدوال all() وany() عندما نستخدمها مع قوائم فارغة:

  • دالة all(): تُعيد True إذا كانت القائمة فارغة؛ لأن جميع القيم الفارغة تعتبر "صحيحة".
  • دالة any(): تُعيد False إذا كانت القائمة فارغة؛ لأن ليس هناك أي عنصر صحيح في القائمة.
# قائمة فارغة
empty_list = []

# التحقق من القوائم الفارغة باستخدام all() و any()
print('نتيجة all() للقائمة الفارغة:', all(empty_list)) # الناتج: True
print('نتيجة any() للقائمة الفارغة:', any(empty_list)) # الناتج: False

كما هو موضح في هذا المثال، all() تُعيد True للقائمة الفارغة، بينما any() تُعيد False.

استخدامات متقدمة

يمكنك استخدام all() وany() مع دوال أخرى لتسهيل عمليات التحقق المعقدة. على سبيل المثال، يمكن دمجهما مع الدالة map() أو مع الشروط المتداخلة.

مثال: التحقق من كون جميع الأعداد زوجية باستخدام map()

# قائمة من الأرقام
numbers = [2, 4, 6, 8]

# التحقق مما إذا كانت جميع الأرقام زوجية باستخدام map()
result = all(map(lambda x: x % 2 == 0, numbers))

print('هل جميع الأرقام زوجية؟', result) # الناتج: True

في هذا المثال، استخدمنا map() مع all() للتحقق مما إذا كانت جميع الأرقام زوجية.

الخلاصة

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

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