تصفية القائمة هي واحدة من الإجراءات الأكثر شيوعا عند العمل مع البيانات في بيثون. بغض النظر عما إذا كانت لدينا قائمة بالأعداد الصحيحة أو السلاسل أو الكائنات ، فنحن دائما بحاجة إلى ترك عناصر معينة فقط في القائمة تفي بمعايير معينة.
في هذه المقالة ، سنلقي نظرة على بعض أفضل الطرق لتصفية قائمة في بايثون باستخدام الوظائف المضمنة ومولدات القائمة والتعبيرات الشرطية. سنقدم أيضا أمثلة على التعليمات البرمجية لمساعدتك على فهم كيفية استخدام كل طريقة بشكل أفضل.
تتمثل إحدى الطرق الأولى لتصفية القائمة في استخدام وظيفة الفلتر() المضمنة. هذه الوظيفة تأخذ وسيطتين-وظيفة وقائمة ، وإرجاع قائمة جديدة تحتوي فقط على تلك العناصر من القائمة الأصلية التي ترجع وظيفة صحيح.
الطريقة الثانية لتصفية القائمة هي استخدام مولد القائمة. مولد القائمة هو طريقة مضغوطة لإنشاء قائمة جديدة بناء على قائمة موجودة. يسمح لنا بتطبيق عامل تصفية على كل عنصر في القائمة وإنشاء قائمة جديدة تحتوي فقط على العناصر التي تفي بشروطنا.
- استخدام الشروط في حلقة
- باستخدام المدمج في تصفية () وظائف لامدا
- باستخدام مولد القائمة
- سؤال وجواب
استخدام الشروط في حلقة
واحدة من أكثر الطرق شيوعا لتصفية قائمة في بايثون هي استخدام الشروط في حلقة. في هذه الحالة ، يمكنك التحقق من امتثال كل عنصر من عناصر القائمة للشرط المحدد وإضافة عناصر مناسبة إلى القائمة الجديدة.
مثال على استخدام الشروط في حلقة:
"'بايثون
# القائمة الأصلية
من الأرقام = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# قائمة جديدة تحتوي على أرقام زوجية فقط
حتى الأرقام = []
للعدد بالأرقام:
إذا كان الرقم % 2 = = 0:
حتى الأرقام.إلحاق (رقم)
طباعة (حتى الأرقام)
"`
نتيجة تنفيذ التعليمات البرمجية:
- 2
- 4
- 6
- 8
- 10
.
طريقة أخرى ممكنة لاستخدام الشروط في حلقة هي تصفية القائمة باستخدام مولد القائمة:
"'بايثون
# القائمة الأصلية
من الأرقام = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# قائمة جديدة تحتوي على أرقام زوجية فقط
حتى الأرقام = [رقم للرقم بالأرقام إذا كان الرقم % 2 = = 0]
طباعة (حتى الأرقام)
"`
نتيجة تنفيذ التعليمات البرمجية:
- 2
- 4
- 6
- 8
- 10
في هذه الحالة ، يتم استخدام بناء جملة مولد القائمة ، والذي يسمح لك بإنشاء قائمة جديدة باستخدام حلقة وشروط. يتم فحص كل عنصر من عناصر القائمة الأصلية من أجل التكافؤ ، وإذا تم استيفاء الشرط ، يتم إضافة العنصر إلى القائمة الجديدة.
يتيح لك استخدام الشروط في حلقة تصفية القائمة الأصلية بمرونة أكبر وإنشاء قوائم جديدة بناء على الشروط المحددة. هذا النهج مفيد بشكل خاص عندما يكون من الضروري معالجة كميات كبيرة من البيانات وتحديد العناصر الضرورية فقط.
باستخدام المدمج في تصفية () وظائف لامدا
بيثون لديه المدمج في تصفية () وظيفة التي تسمح لك لتصفية العناصر من قائمة باستخدام شرط محدد كدالة لامدا. تقوم وظيفة الفلتر() بإرجاع كائن قابل للتكرار يحتوي فقط على عناصر القائمة التي تفي بالشرط.
دالة لامدا هي دالة غير مسماة يمكن تعريفها في سطر من التعليمات البرمجية. وهو يتألف من الكلمة لامدا ، تليها قائمة من الحجج ، القولون ، والتعبير ليتم تنفيذها.
مثال على استخدام وظيفة التصفية () ووظيفة لامدا لتصفية قائمة:
أرقام = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# تصفية الأرقام الزوجية فقط
حتى الأرقام = مرشح (لامدا س: س ٪ 2 = = 0 ، أرقام)
طباعة (قائمة (حتى الأرقام)) # [2, 4, 6, 8, 10]
# تصفية الأرقام فقط أقل من 5
أقل من 5 = مرشح (لامدا س: س < 5 ، أرقام)
طباعة (قائمة (أقل من_5)) # [1, 2, 3, 4]
في المثال أعلاه ، وظيفة لامدا لامدا س: س ٪ 2 == 0 يتحقق ما إذا كان الرقم حتى. تقوم وظيفة المرشح() بتطبيق وظيفة لامدا هذه على كل عنصر من عناصر قائمة الأرقام وإرجاع كائن قابل للتكرار يحتوي على أرقام زوجية فقط.
وبالمثل ، يستخدم المثال الثاني وظيفة لامدا لامدا س: س < 5 لتصفية الأرقام التي تقل عن 5. تقوم وظيفة المرشح() بإرجاع عناصر قائمة الأرقام التي تفي بالشرط فقط.
يمكن أن تكون وظيفة المرشح () مفيدة جدا لتصفية القوائم المعقدة أو قوائم الكائنات حيث يلزم تطبيق شروط التصفية المعقدة.
باستخدام مولد القائمة
قائمة المولدات هي وسيلة مدمجة وفعالة لتصفية وتحويل القوائم في بيثون. إنها تسمح لك بإنشاء قوائم جديدة بناء على قائمة موجودة أو تسلسل آخر عن طريق إجراء تصفية العناصر وتحويلها ودمجها.
الفكرة الرئيسية لمولدات القائمة هي أنها شكل مضغوط ومعبر لإنشاء قائمة جديدة بناء على قائمة موجودة. يتم تمثيل مولد القائمة كتعبير داخل أقواس مربعة تحتوي على تعبير لكل عنصر يجب تضمينه في القائمة الجديدة.
تتمثل ميزة استخدام منشئ القائمة في أنه يسمح لك بإنشاء قوائم جديدة دون استخدام الحلقات والمشغلين الشرطيين بشكل صريح. هذا يجعل الكود أكثر قابلية للقراءة والفهم ، ويقلل أيضا من عدد أسطر التعليمات البرمجية.
مثال على استخدام مولد القائمة:
- إنشاء قائمة جديدة تحتوي على أرقام زوجية فقط:
"'بايثون
أرقام = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
حتى الأرقام = [س ل س بالأرقام إذا س ٪ 2 = = 0]
طباعة (حتى الأرقام) # [2, 4, 6, 8, 10]
"`
في هذا المثال ، نقوم بإنشاء قائمة جديدة بالأرقام المتساوية باستخدام منشئ القائمة. يتكون التعبير داخل الأقواس المربعة من المتغير س ، الذي يأخذ كل قيمة من قائمة الأرقام ، والمشغل الشرطي إذا ، الذي يقوم بتصفية الأرقام الزوجية فقط.
- إنشاء قائمة جديدة تحتوي على مربعات من الأرقام:
"'بايثون
أرقام = [1, 2, 3, 4, 5]
المربعات = [س * * 2 ل س في أرقام]
طباعة (مربعات) # [1, 4, 9, 16, 25]
«`
في هذا المثال ، نقوم بإنشاء قائمة جديدة من المربعات باستخدام منشئ القائمة. يتكون التعبير داخل الأقواس المربعة من المتغير س ، الذي يأخذ كل قيمة من قائمة الأرقام ، وعملية التربيع.
يمكن أن تحتوي مولدات القائمة أيضا على تعبيرات أكثر تعقيدا وتتضمن أكثر من عامل شرطي واحد. إنها تسمح لك بإجراء عمليات مختلفة على عناصر القائمة ، بما في ذلك التصفية والتحويل والجمع.
استخدام مولدات قائمة لتبسيط التعليمات البرمجية الخاصة بك والحصول على حلول أكثر إحكاما وكفاءة للمشاكل في بيثون.