Python

تابع Filter

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

 

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

نحوه عملکرد:

فرض کنید لیست numbers شامل مقادیر [1, 2, 3, 4, 5, 6] باشد.

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

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

Python
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # خروجی: [2, 4, 6]

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

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

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

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

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

Python
numbers = [1, 2, 3, 4, 5, 6]

even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # خروجی: [2, 4, 6]

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

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

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

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

Python
data = [1, "Hello", True, 3.14, [1, 2]]

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

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

Python
tuples = [(1, 2), (3, 4), (5, 6), (7, 8)]

even_second_elements = list(filter(lambda t: t[1] % 2 == 0, tuples))
print(even_second_elements)  # خروجی: [(2, 4), (6, 8)]

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

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

Python
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_and_divisible_by_3 = list(filter(lambda x: x % 2 == 0 and x % 3 == 0, numbers))
print(even_and_divisible_by_3)  # خروجی: [6]

نکات:

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

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

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

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