Bắt đầu ngayBắt đầu miễn phí

Reduce() và hàm lambda

Bạn đang dùng hàm lambda ngày càng thuần thục! Đây là thêm một hàm nữa để bạn bổ sung vào bộ kỹ năng của mình. Hàm reduce() hữu ích khi bạn muốn thực hiện một phép tính trên một danh sách và, khác với map()filter(), trả về một giá trị duy nhất. Để dùng reduce(), bạn phải import nó từ module functools.

Bạn còn nhớ gibberish() từ vài bài trước không?

# Define gibberish
def gibberish(*args):
    """Concatenate strings in *args together."""
    hodgepodge = ''
    for word in args:
        hodgepodge += word
    return hodgepodge

gibberish() đơn giản là nhận một danh sách các chuỗi làm đối số và trả về một kết quả đơn lẻ: chuỗi là kết quả của việc nối tất cả các chuỗi đầu vào. Trong bài này, bạn sẽ tái tạo chức năng đó bằng cách dùng reduce() và một hàm lambda để nối các chuỗi lại với nhau.

Bài tập này là một phần của khóa học

Giới thiệu về Functions trong Python

Xem khóa học

Hướng dẫn bài tập

  • Import hàm reduce từ module functools.
  • Trong lời gọi reduce(), truyền vào một hàm lambda nhận hai đối số kiểu chuỗi item1item2 rồi nối chúng lại; đồng thời truyền vào danh sách các chuỗi stark. Gán kết quả cho result. Đối số thứ nhất của reduce() phải là hàm lambda và đối số thứ hai là danh sách stark.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Import reduce from functools


# Create a list of strings: stark
stark = ['robb', 'sansa', 'arya', 'brandon', 'rickon']

# Use reduce() to apply a lambda function over stark: result
result = reduce(____, ____)

# Print the result
print(result)
Chỉnh sửa và Chạy Mã