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...
Category: Python
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:
15
Giả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:
15
Giả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
geeksforgeeks
Giả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. |
Published on Jun 18, 2025
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 game ngày nay rất bổ ích và có thể được sử dụng trong...
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 nghiệm của người dùng. Python, được biết đến vớ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 , mỗi module có chức năng riêng. Trong bài viết nà...
Python MySQL Connector là trình điều khiển Python giúp tích hợp Python và MySQL. Thư viện Python MySQL này cho phép chuyển đổi giữa các kiểu dữ liệu...
Quản lý thư mục Python đề cập đến việc xử lý và tương tác với các thư mục (folder) trên hệ thống tệp bằng Python. Nó bao gồm việc tạo, xóa, điều hướng...
Mô-đun Pathlib trong Python cung cấp các lớp và phương thức để thực hiện nhanh chóng các tác vụ phổ biến nhất liên quan đến đường dẫn hệ thống t...