filter() التصفية حسب دالة
آخر تحديث: 2026-09-22
filter() التصفية حسب دالة
يُبقي filter(function, iterable) العناصر في iterable التي تُرجع لها function القيمة True؛ ويُرجع مُكرِّرًا.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
filter(function, iterable)
⚙️ المعاملات
| function مطلوب | The predicate; pass None to use element truthiness directly. |
|---|---|
| iterable مطلوب | The iterable to filter. |
القيمة المُعادة:A filter iterator; wrap with list() to materialize it.
💥 الاستثناءات
TypeError— Raised when function is not callable or iterable is not iterable.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
[2, 4]
🏷️ دوال مدمجة ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qماذا تُرجع filter()؟
Aتُرجع مكرر filter (كسول)؛ يجب تحويلها إلى قائمة بـ list(filter(...)) أو تكرارها للحصول على النتائج.
Qماذا تعني filter(None, lst)؟
Aعندما تكون function هي None، تُفلتر حسب القيمة الحقيقية للعناصر، وتكافئ [x for x in lst if x]، وتزيل دفعة واحدة القيم الكاذبة مثل 0 و '' و None.
Qأيهما أفضل، filter() أم قائمة الاشتقاق؟
Aعند تساوي الدلالة يكون الاشتقاق [x for x in lst if cond] أكثر قابلية للقراءة؛ بينما يكون filter مع الدوال الموجودة مسبقًا (مثل filter(str.isdigit, s)) أكثر إيجازًا.
Qهل تنفّذ filter دالة الحكم فورًا؟
Aلا. filter كسول التقييم؛ لا تستدعي function عنصرًا بعنصر إلا عندما تبدأ التكرار — مناسب لسلاسل العمليات على بيانات ضخمة.