Menu
CoddyTech

Sử dụng phép tổng hợp dữ liệu

Thuộc phần Logic và luồng chương trình trong hành trình Python của Coddy. Bài học 53 trên 78.

List comprehension cung cấp cách ngắn gọn để tạo danh sách mới dựa trên các đối tượng có thể lặp hiện có. Bạn có thể tích hợp các hàm tổng hợp dữ liệu như sum(), min() và max() trực tiếp vào list comprehension để tính toán trên các phần tử của danh sách mới ngay khi danh sách được tạo.

Tính tổng các bình phương:

numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
print(sum_of_squares)
# Đầu ra: 55

Trong ví dụ này, cú pháp tạo danh sách [n * n for n in numbers] tạo ra một danh sách các bình phương, còn hàm (function) sum() tính tổng các bình phương này.

Tìm giá trị nhỏ nhất trong các giá trị đã biến đổi:

numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
print(min_absolute)
# Đầu ra: 0

Ở đây, cú pháp rút gọn tạo danh sách [abs(n) for n in numbers] tạo ra một danh sách các giá trị tuyệt đối, còn hàm min() tìm giá trị nhỏ nhất trong danh sách này.

Tìm giá trị lớn nhất trong các giá trị đã lọc:

numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
print(max_even)
# Đầu ra: 6

Trong ví dụ này, biểu thức tạo danh sách [n for n in numbers if n % 2 == 0] tạo ra một danh sách các số chẵn, còn hàm (function) max() tìm giá trị lớn nhất trong danh sách này.

challenge icon

Thử thách

Dễ

Viết một hàm sum_positive_evens nhận vào một danh sách số. Dùng cú pháp rút gọn danh sách để lọc các số chẵn dương, sau đó dùng sum() để tính tổng. Trả về kết quả.

Đầu vào mẫu:

numbers = [-10, -5, 0, 2, 4, 7, 10, 12]

Đầu ra mẫu:

28

Tự làm thử

def sum_positive_evens(numbers):
    # Viết code ở đây
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Python online