"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني التحقق مما إذا كانت القوائم تشارك أي عناصر في بايثون؟

كيف يمكنني التحقق مما إذا كانت القوائم تشارك أي عناصر في بايثون؟

تم النشر بتاريخ 2024-11-08
تصفح:332

How Do I Check if Lists Share Any Items in Python?

اختبار ما إذا كانت القوائم تشارك أي عناصر في بايثون

مقدمة

عند العمل مع قوائم متعددة في بايثون، غالبًا ما يكون من الضروري تحديد ما إذا كانت هناك أي عناصر تتداخل بين تلك القوائم. يعد هذا بمثابة عملية أساسية لمختلف مهام تحليل البيانات ومعالجتها.

إجابة قصيرة

الطريقة الموصى بها لاختبار تداخل القائمة في Python هي استخدام not set(a).isdisjoint(b) ) تعبير. إنه يوفر طريقة فعالة وموجزة بشكل عام لهذه المهمة.

تحليل تفصيلي

الطريقة الأولى: تعيين التقاطع

bool(set(a) & set(b))
    يحول كلا القائمتين إلى مجموعات، ثم يتحقق من تقاطعهما.
  • بطيء نسبيًا، خاصة بالنسبة للقوائم الكبيرة، حيث أن التحويل إلى مجموعات يستهلك ذاكرة إضافية و الوقت.

الطريقة 2: مولد التعبير مع عامل التشغيل

any(i in a for i in b)
any(i in a for i in b)
يتكرر من خلال قائمة واحدة ويتحقق من عضوية كل عنصر في القائمة الأخرى.
  • سريع عندما تكون العناصر قريبة من بداية القائمة ولكنها غير فعالة للقوائم التي لا تحتوي على عناصر مشتركة أو عندما تكون العناصر المشتركة في النهاية.
الطريقة الثالثة: الهجين (التكرار وعضوية المجموعة)

a = set(a); Any(i in a for i in b)
a = set(a); any(i in a for i in b)
يحول قائمة واحدة إلى مجموعة ويتكرر من خلال القائمة الأخرى، ويتحقق من العضوية في المجموعة.
  • عموما أبطأ من الطرق الأخرى.
الطريقة الرابعة: طريقة منفصلة للمجموعات

غير محددة (a).isdisjoint (b)

not set(a).isdisjoint(b)
سريعة وفعالة لكل من القوائم المشتركة والمنفصلة، ​​خاصة عندما تكون القوائم ذات أحجام مختلفة.
  • مقارنة الأداء
  • تكشف اختبارات الأداء أن not set(a).isdisjoint(b) يتفوق في معظم الحالات، خاصة بالنسبة للقوائم الكبيرة أو المواقف التي تكون فيها العناصر المشتركة متناثرة.

الاستنتاج

لاختبار تداخل القائمة في Python، فكر في استخدام التعبير not set(a).isdisjoint(b) لأنه يوفر حلاً موثوقًا وفعالًا ومتعدد الاستخدامات عبر أحجام وسيناريوهات مختلفة للقوائم.

بيان الافراج يتم استنساخ هذه المقالة في: 1729382836 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3