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() và 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
Hướng dẫn bài tập
- Import hàm
reducetừ modulefunctools. - Trong lời gọi
reduce(), truyền vào một hàm lambda nhận hai đối số kiểu chuỗiitem1vàitem2rồi nối chúng lại; đồng thời truyền vào danh sách các chuỗistark. Gán kết quả choresult. Đối số thứ nhất củareduce()phải là hàm lambda và đối số thứ hai là danh sáchstark.
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)