Làm thế nào để có được kích thước của cửa sổ PyGame?
Trong bài viết này, chúng ta sẽ tìm hiểu Cách lấy kích thước của Cửa sổ PyGame . Lập trình gam...
Writer CodeGym
Đăng ngày 18/06/2025
Hàm reduce(fun,seq) được sử dụng để áp dụng một hàm cụ thể được truyền trong đối số của nó cho tất cả các phần tử danh sách được đề cập trong chuỗi được truyền qua. Hàm này được định nghĩa trong mô-đun " functools ".
Chúng ta hãy bắt đầu bằng một ví dụ đơn giản, trong đó chúng ta tính tổng tất cả các số trong một danh sách.
from functools import reduce
# Hàm cộng 2 số
def add(x, y):
return x + y
a = [1, 2, 3, 4, 5]
res = reduce(add, a)
print(res) # Đầu ra: 15Đầu ra:
15Giải thích:
Hàm reduce() áp dụng hàm add() tích lũy cho các phần tử theo số. Đầu tiên, 1 + 2 = 3. Sau đó, 3 + 3 = 6. Và cứ tiếp tục như vậy cho đến khi tất cả các số được xử lý.
Kết quả cuối cùng là 15.
Hãy cùng tìm hiểu chi tiết về hàm reduce:
hàm: Một hàm nhận hai đối số và thực hiện một phép toán trên chúng.
iterable: Một đối tượng có thể lặp lại có các phần tử được xử lý bởi hàm.
bộ khởi tạo (tùy chọn): Giá trị bắt đầu cho hoạt động. Nếu được cung cấp, nó sẽ được đặt trước phần tử đầu tiên trong phần lặp.
Hàm reduce() là một phần của module functools, do đó bạn cần import hàm này trước khi sử dụng.
Khi kết hợp với hàm lambda , reduce() trở thành công cụ ngắn gọn và mạnh mẽ cho các tác vụ tổng hợp như tính tổng, nhân hoặc tìm giá trị lớn nhất.
from functools import reduce
# tổng các số với reduce và lambda
a = [1, 2, 3, 4, 5]
res = reduce(lambda x, y: x + y, a)
print(res)Đầu ra:
15Giải thích:
Hàm lambda lấy hai đối số (x và y) và trả về tổng của chúng.
reduce() bắt đầu bằng cách áp dụng hàm cho hai phần tử đầu tiên: 1 + 2 = 3.
Kết quả (3) sau đó được sử dụng với phần tử tiếp theo: 3 + 3 = 6, v.v.
Quá trình này tiếp tục cho đến khi xử lý xong tất cả các phần tử, cho kết quả là 15.
reduce() cũng có thể được kết hợp với các hàm toán tử để đạt được chức năng tương tự như với các hàm lambda và làm cho mã dễ đọc hơn.
import functools
# nhập thư viện operator để dùng các hàm toán tử
import operator
# khởi tạo danh sách
a = [1, 3, 5, 6, 2]
# sử dụng reduce với toán tử cộng để tính tổng các phần tử trong danh sách
print(functools.reduce(operator.add, a))
# sử dụng reduce với toán tử nhân để tính tích các phần tử trong danh sách
print(functools.reduce(operator.mul, a))
# sử dụng reduce với toán tử cộng để nối các chuỗi
print(functools.reduce(operator.add, ["geeks", "for", "geeks"]))Đầu ra:
17
180
geeksforgeeksGiải thích:
Hàm operator.add và operator.mul là các toán tử được xác định trước.
reduce() áp dụng hàm cộng tích lũy vào các phần tử trong danh sách.
Hoạt động này tương tự như ví dụ lambda nhưng mã sạch hơn và dễ đọc hơn.
Hàm cumulative() từ mô-đun itertools cũng thực hiện các hoạt động tích lũy, nhưng nó trả về một trình lặp chứa các kết quả trung gian, không giống như reduce(), chỉ trả về một giá trị cuối cùng duy nhất.
Ví dụ với tích lũy:
from itertools import accumulate
from operator import add
# Tổng tích lũy với tích lũy
a = [1, 2, 3, 4, 5]
res = accumulate(a, add)
print(list(res))Đầu ra
[1, 3, 6, 10, 15]Tính năng | reduce() | accumulate() |
|---|---|---|
acGiá trị trả về | Một giá trị cuối cùng duy nhất (ví dụ: 15). | Kết quả trung gian (ví dụ: [1, 3, 6, 10, 15]). |
Loại đầu ra | Trả về một giá trị duy nhất. | Trả về một trình lặp. |
Trường hợp sử dụng | Hữu ích khi chỉ cần kết quả cuối cùng. | Hữu ích khi theo dõi số bước tích lũy. |
Nhập khẩu | Từ functools. | Từ itertools. |
Trong bài viết này, chúng ta sẽ tìm hiểu Cách lấy kích thước của Cửa sổ PyGame . Lập trình gam...
Giao diện người dùng đồ họa ( GUI ) đóng vai trò then chốt trong việc nâng cao tương tác và trải...
Python Module là một tệp chứa các hàm, lớp, its và biến tích hợp. Có nhiều module Python ,...