Bài viết giới thiệu lambda expression (hàm ẩn danh) và hàm filter() tích hợp sẵn trong Python.
Lambda Expression là gì?
Cú pháp: lambda tham_số: biểu_thức
- Không cần từ khóa
def. - Chỉ chứa một biểu thức duy nhất.
- Thường dùng làm đối số cho
filter(),map(),sorted()...
Hàm filter()
Cú pháp: filter(function, iterable)
- Trả về iterator chứa các phần tử khiến
functiontrả vềTrue. - Cần
list()để ép thành list nếu muốn in hoặc dùng chỉ số.
Ví dụ 1: Lọc bỏ ký tự 't'
inp_list = ['t','u','t','o','r','i','a','l'] result = list(filter(lambda x: x != 't', inp_list)) print(result) # ['u', 'o', 'r', 'i', 'a', 'l']
Ví dụ 2: Lọc số chẵn
inp_list = [1,2,3,4,5,6,7,8,9,10] result = list(filter(lambda x: x % 2 == 0, inp_list)) print(result) # [2, 4, 6, 8, 10]
Ví dụ 3: Kết hợp với map()
# Lọc số chẵn rồi bình phương numbers = [1,2,3,4,5,6,7,8,9,10] result = list(map(lambda x: x**2, filter(lambda x: x%2==0, numbers))) print(result) # [4, 16, 36, 64, 100]
Kết luận
lambda + filter() là cặp đôi mạnh mẽ cho lập trình hàm (functional programming) trong Python, giúp code ngắn gọn, dễ đọc khi xử lý tập hợp dữ liệu.