Sunday, January 19, 2025

[Python] Lesson 54 – Filter

-

Trên Python, filter() là một hàm built-in để lọc các phần tử trong một danh sách (list) hoặc một iterator dựa trên một hàm điều kiện (condition function) được áp dụng lên từng phần tử.

Cú pháp:

filter(function, iterable)

Trong đó:

  • function: hàm điều kiện được áp dụng lên từng phần tử. Hàm này phải trả về True hoặc False.
  • iterable: danh sách hoặc iterator chứa các phần tử được lọc.

Hàm filter() trả về một iterator chứa các phần tử thỏa điều kiện của hàm function.

Ví dụ 1:

# Lọc các số chẵn trong một danh sách các số nguyên
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # output: [2, 4, 6, 8, 10]

Trong ví dụ trên, hàm filter() được áp dụng lên danh sách numbers để lọc các số chẵn. Hàm điều kiện là lambda function lambda x: x % 2 == 0, kiểm tra xem số đó có chia hết cho 2 hay không. Danh sách even_numbers sẽ chỉ chứa các số chẵn.

Ví dụ 2:

Trong quản trị hệ thống Linux, filter() trong Python có thể được sử dụng để lọc danh sách các file trong một thư mục.

Ví dụ, ta có thư mục sau:

/home/user/files/
    file1.txt
    file2.csv
    file3.txt
    file4.png
    file5.txt

Chúng ta muốn lọc danh sách các file trong thư mục này để chỉ lấy các file có phần mở rộng là .txt. Ta có thể sử dụng hàm filter() để thực hiện điều này:

import os

path = "/home/user/files/"
txt_files = filter(lambda x: x.endswith('.txt'), os.listdir(path))
print(list(txt_files))  # output: ['file1.txt', 'file3.txt', 'file5.txt']

Ở đây, hàm os.listdir() trả về một danh sách các file và thư mục trong đường dẫn được cung cấp. Sau đó, chúng ta sử dụng filter() để lọc các file chỉ với phần mở rộng là .txt và lưu trữ chúng trong biến txt_files. Kết quả được in ra màn hình là danh sách các file có phần mở rộng là .txt.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories