تعتبر وظيفة التصفية () المضمنة في Python قوية أيضًا؛ لتنفيذ إجراء تصفية البيانات على تسلسلات مثل القوائم والصفوف والسلاسل. يتم استخدام الدالة filter() لتطبيق دالة على كل عنصر من العناصر القابلة للتكرار (مثل القائمة أو المجموعة) وإرجاع عنصر تكراري آخر يحتوي فقط على العناصر التي تعيد الدالة True لها. على هذا المنوال، يسمح لنا عامل التصفية () بتصفية العناصر من مجموعة بناءً على بعض الشروط. يمكن أن تكون الوسيطة الأولى بلا إذا كانت الوظيفة غير متوفرة وتقوم بإرجاع العناصر الصحيحة فقط.
بناء الجملة:
filter (function, iterable)
حدود
وظيفة: إنها وظيفة. إذا تم التعيين على لا شيء، فسيتم إرجاع العناصر الصحيحة فقط.
متوقعة: أي تسلسل قابل للتكرار مثل القائمة والصفوف والسلسلة.
كلا المعلمتين مطلوبتان.
يعود
تقوم بإرجاع نفس ما تم إرجاعه بواسطة الدالة.
دعونا نرى بعض الأمثلة على وظيفة filter() لفهم وظيفتها.
وظيفة مرشح بايثون () مثال 1
يُرجع هذا المثال البسيط قيمًا أعلى من 5 باستخدام وظيفة التصفية. انظر المثال أدناه.
شفرة
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
انتاج:
[6]
يحدد الكود دالة تسمى بيانات التصفية والتي تأخذ وسيطة واحدة x. في هذه الدالة، نتحقق من افتراض أن x أكبر من 5، وبشرط أن يكون ذلك صحيحًا، نطبع x. بعد ذلك، نستدعي الدالة filter()، ونمرر بيانات التصفية كوسيطة رئيسية ومجموعة (1، 2، 6) كوسيطة لاحقة. تقوم الدالة filter() بتطبيق الدالة filterdata() على كل عنصر من عناصر المجموعة وتعيد مكررًا يحتوي فقط على العناصر التي تحقق الشرط x > 5. وأخيرًا، نقوم بتحويل المكرر إلى قائمة باستخدام وظيفة list() وطباعة النتيجة.
فيما يلي بعض الأمثلة الإضافية لكيفية استخدام طريقة التصفية () في بايثون:
مثال 2:
تصفية السلاسل الفارغة من القائمة:
شفرة
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
انتاج:
[ 'hello', 'world' ]
في هذا المثال، تتحقق دالة lambda مما إذا كانت كل سلسلة ليست فارغة عن طريق الاختبار على افتراض أنها تعادل السلسلة الفارغة (''). تقوم الدالة filter() بإرجاع عنصر تكراري آخر يحتوي فقط على السلاسل غير الفارغة.
مثال 3:
تصفية الأرقام السالبة من القائمة:
شفرة
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
انتاج:
[1, 3, 5]
في هذا المثال، تتحقق دالة لامدا من افتراض أن كل رقم غير سالب عن طريق اختبار ما إذا كان أكثر بروزًا من الصفر (0) أو يعادله. تقوم الدالة filter() بإرجاع عنصر تكراري آخر يحتوي فقط على الأرقام غير السالبة.
مثال 4:
تصفية التكرارات من القائمة:
شفرة
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
انتاج:
[ 1, 4, 5 ]
في هذا المثال، تتحقق دالة لامدا من ظهور كل رقم مرة واحدة فقط في قائمة الأرقام عن طريق حساب عدد مرات ظهوره (numbers.count(x)) واختبار ما إذا كان العدد مكافئًا لـ 1. تقوم الدالة filter() بإرجاع عنصر تكراري آخر يحتوي على الأرقام الفريدة فقط.
ملحوظة: من المهم أنه في Python 3، تقوم الدالة filter() بإرجاع كائن قابل للتكرار، وهذا يعني أنك تريد حقًا تغييره بالكامل إلى قائمة (كما هو موضح في الأمثلة أعلاه) لإدراجه كقائمة. ومع ذلك، في Python 2، تقوم الدالة filter() بإرجاع قائمة بالطبع.
خاتمة:
وأخيرًا، تعد وظيفة التصفية () أداة قوية لمعالجة البيانات في بايثون. من خلال تصفية عنصر قابل للتكرار بناءً على شرط محدد مسبقًا، يمكنك فصل البيانات التي تريدها بالفعل بسرعة وفعالية. يمكنك أيضًا استخدام عامل التصفية () مع وظائف Python الأخرى لإجراء عمليات معالجة أكثر تعقيدًا للبيانات.