استبدال قائمة بايثون بمنطق منطقي مشروط
في ضوء قائمة القيم، قد ترغب في استبدال عناصر محددة بشكل انتقائي بـ لا شيء بناءً على حالة. يمكن للشرط، الذي يحدده شرط الوظيفة ()، تحديد ما إذا كان سيتم استبدال عنصر بناءً على قيمته. يستكشف هذا السؤال طرقًا مختلفة لتحقيق هذا الاستبدال في بايثون مع تقديم حالة نموذجية تحل محل العناصر ذات الأرقام الفردية.
الحل 1: فهم القائمة
الطريقة الأكثر فعالية لإجراء هذا الاستبدال هو استخدام فهم القائمة. ينشئ هذا الأسلوب قائمة جديدة، مع الحفاظ على الترتيب الأصلي مع استبدال العناصر المطابقة:
new_items = [x if x % 2 else None for x in items]
في هذا المثال، يتم الاحتفاظ بالعناصر القابلة للقسمة على 2 (الأرقام الزوجية)، في حين يتم استبدال الأرقام الفردية بـ لا شيء.
الحل 2: التعديل الموضعي
بدلاً من ذلك، يمكنك تعديل القائمة الأصلية مباشرة. ومع ذلك، فإن هذا النهج أقل كفاءة بشكل هامشي:
for index, item in enumerate(items):
if not (item % 2):
items[index] = None
تكرر هذه الطريقة عبر القائمة وتستبدل العناصر ذات الأرقام الفردية بلا شيء في مكانها.تحليل تعقيد الوقت
كلا الحلين لهما تعقيد زمني خطي قدره O(n)، مما يشير إلى أن وقت التشغيل الخاص بهما يزيد بشكل متناسب مع عدد العناصر في القائمة.مقاييس الأداء
الأداء تظهر المعايير اختلافات ضئيلة بين الحلين. ومع ذلك، بالنسبة للقوائم الكبيرة، يكون فهم القائمة أسرع قليلاً.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3