اذهب إلى المحتوى

السؤال

نشر

إن الطريقة الصحيحة في بايثون للتأكد ما إذا كانت السلسلة النصية x هي سلسلة نصية فرعية لـ y هي:

if x in y:

لكن لو أردت التأكد ما إذا كانت x تحتوى على أي واحدة من متغيرات aو b وc... فيمكنني فعل ذلك عن طريق السطر التالي:

if a in x or b in x or c in x or d in x or e in x or f in x or g in x

فهل توجد صياغة أقصر في بايثون لفعل ذلك؟

Recommended Posts

  • 0
نشر

إن أسهل طريقة بايثونية للتأكد من متغيّر معين موجود داخل متغير آخر هي عن طريق استخدام دالة any():

تُرجع هذه الدالة true إذا كان أحد هذه العناصر القابلة للتكرار(iterable) هو صحيح، أما لو كان عكس ذلك فسترجع False، وهذه العملية مشابه لهذه:

def any(iterable):
    for element in iterable:
        if element:
            return True

    return False

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

if any(s in x for s in (a,b,c,d,e,f,g)):

لاحظ أنني استخدمت tuple بدلا من القوائم، وهذه الطريقة مفضّلة لدى المبرمجين وهي أفضل وأسرع من استخدام القوائم في هذه الحالة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...