Các hàm Python trật tự cao hơn (phần 5)

Các hàm Python trật tự cao hơn (tiếp tục)

Giảm

Ví dụ cuối cùng của chúng ta về một hàm trật tự cao hơn được gọi là giảm. Ở đây chúng ta lấy list các giá trị và
áp dụng lặp lại một hàm để tích lũy một giá trị dữ liệu đơn. Một tổng là một ví dụ tốt về quá trình này. Giá trị
đầu tiên được thêm vào giá trị thứ hai, sau đó tổng được thêm vào giá trị thứ ba,và vvv..vv, cho đến khi tổng của
tất cả các giá trị được sinh ra.
Module functools Python bao gồm hàm reduce cái mong đợi một hàm hai đối số và một list các giá trị. Hàm reduce
trả về kết quả của áp dụng hàm như được mô tả. Ví dụ sau thể hiện reduce được sử dụng 2 lần – một lần sinh ra một
tổng và một lần sinh ra một product:

>>> from functools import reduce
>>> def add(x, y): return x + y
>>> def multiply(x, y): return x * y
>>> data = [1, 2, 3, 4]
>>> reduce(add, data)
10
>>> reduce(multiply, data)
24

Chia sẻ