Python

تابع Filter

تابع Filter در پایتون

 

تابع Filter در پایتون برای انتخاب و استخراج عناصری از یک iterable (مانند لیست، تاپل یا رشته) بر اساس یک شرط خاص استفاده می‌شود. این متد، یک iterabe جدید شامل عناصر فیلتر شده را برمی‌گرداند و لیست اصلی را تغییر نمی‌دهد.

نحوه عملکرد:

فرض کنید لیست numbers شامل مقادیر [۱, ۲, ۳, ۴, ۵, ۶] باشد.

می‌خواهیم لیستی جدید شامل تمام اعداد زوج در لیست numbers ایجاد کنیم.

می‌توانیم این کار را با استفاده از filter() به شرح زیر انجام دهیم:

Python
even_numbers = list(filter(lambda x: x % ۲ == ۰, numbers))
print(even_numbers)  # خروجی: [۲, ۴, ۶]

در این مثال، lambda x: x % 2 == 0 یک تابع بی نام است که به عنوان شرط فیلتر عمل می‌کند.

این تابع، True را برای اعداد زوج و False را برای اعداد فرد برمی‌گرداند.

متد filter() از این تابع برای بررسی هر عنصر در لیست numbers استفاده می‌کند و فقط عناصری که شرط را True می‌کنند در لیست even_numbers جدید ذخیره می‌کند.

مثال‌های کاربردی:

۱. فیلتر کردن اعداد زوج از یک لیست:

Python
numbers = [۱, ۲, ۳, ۴, ۵, ۶]

even_numbers = list(filter(lambda x: x % ۲ == ۰, numbers))
print(even_numbers)  # خروجی: [۲, ۴, ۶]

۲. فیلتر کردن رشته‌ها بر اساس طول:

Python
words = ["apple", "banana", "orange", "grape"]

long_words = list(filter(lambda word: len(word) > ۵, words))
print(long_words)  # خروجی: ["banana", "orange"]

۳. فیلتر کردن اشیاء بر اساس نوع:

Python
data = [۱, "Hello", True, ۳.۱۴, [۱, ۲]]

numbers = list(filter(lambda x: isinstance(x, int), data))
print(numbers)  # خروجی: [۱, ۳]

۴. فیلتر کردن تاپل‌ها بر اساس مقدار عنصر خاص:

Python
tuples = [(۱, ۲), (۳, ۴), (۵, ۶), (۷, ۸)]

even_second_elements = list(filter(lambda t: t[۱] % ۲ == ۰, tuples))
print(even_second_elements)  # خروجی: [(۲, ۴), (۶, ۸)]

۵. ترکیب توابع فیلتر:

می‌توان از توابع متعدد در filter() برای اعمال چند شرط به طور همزمان استفاده کرد:

Python
numbers = [۱, ۲, ۳, ۴, ۵, ۶, ۷, ۸, ۹, ۱۰]

even_and_divisible_by_3 = list(filter(lambda x: x % ۲ == ۰ and x % ۳ == ۰, numbers))
print(even_and_divisible_by_3)  # خروجی: [۶]

نکات:

  • filter() یک iterabe جدید شامل عناصر فیلتر شده را برمی‌گرداند و لیست اصلی را تغییر نمی‌دهد.
  • برای استفاده از filter(), به یک تابع بی نام یا یک تابع از پیش تعریف شده به عنوان شرط فیلتر نیاز دارید.
  • می توانید از filter() برای فیلتر کردن انواع مختلف داده (مانند لیست، تاپل، رشته و اشیاء) استفاده کنید.
  • می توانید از توابع متعدد در filter() برای اعمال چند شرط به طور همزمان استفاده کنید.
۰/۵ ( ۰ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا