Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lambda và filter trong Python - Ví dụ chi tiết


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 function trả 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.