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

كيفية استبدال القيم في القائمة بناءً على شرط في بايثون؟

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

How to Replace Values in a List Based on a Condition in Python?

استبدال القيم في قائمة بناءً على شرط في بايثون

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

تتضمن إحدى الطرق الاستفادة من فهم القائمة. على سبيل المثال، إذا كانت لديك قائمة [0، 1، 2، 3، 4، 5، 6، 7، 8، 9، 10] وتريد استبدال العناصر التي يكون معامل 2 فيها يساوي 0، فيمكنك استخدام الفهم التالي :

new_items = [x if x % 2 else None for x in items]

ينشئ هذا الفهم قائمة جديدة حيث يتم التحقق من كل عنصر مقابل الشرط (x % 2). إذا كان الشرط خطأ، يتم الاحتفاظ بالقيمة الأصلية (x). بخلاف ذلك، يتم استبدال العنصر بلا شيء.

بدلاً من ذلك، يمكنك تعديل القائمة في مكانها باستخدام حلقة for:

for index, item in enumerate(items):
    if not (item % 2):
        items[index] = None

يتكرر هذا الحل عبر القائمة، ويحدد العناصر التي تستوفي الشرط (العنصر % 2)، ثم يعين لا شيء لتلك المواضع.

يظهر تحليل تعقيد الوقت ذلك يستغرق كلا النهجين نفس القدر من الوقت تقريبًا. في Python 3.6.3، يتفوق فهم القائمة قليلاً على حلقة for من حيث السرعة، بينما في Python 2.7.6، يكون الأداء مشابهًا.

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

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

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

Copyright© 2022 湘ICP备2022001581号-3