Map() và hàm lambda
Đến giờ, bạn đã dùng hàm lambda để viết các hàm ngắn, đơn giản cũng như để định nghĩa lại những hàm có chức năng đơn giản. Tuy nhiên, trường hợp sử dụng tốt nhất cho hàm lambda là khi bạn muốn nhúng những chức năng đơn giản này một cách ẩn danh vào các biểu thức lớn hơn. Điều đó có nghĩa là chức năng không được lưu trong môi trường, khác với một hàm được định nghĩa bằng def. Để hiểu rõ hơn ý tưởng này, bạn sẽ dùng một hàm lambda trong ngữ cảnh của hàm map().
Hãy nhớ từ video rằng map() áp dụng một hàm lên một đối tượng, chẳng hạn như một danh sách. Ở đây, bạn có thể dùng hàm lambda để định nghĩa hàm mà map() sẽ dùng để xử lý đối tượng. Ví dụ:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Bạn có thể thấy một hàm lambda, hàm này bình phương giá trị a, được truyền vào map() cùng với một danh sách số, nums. Đối tượng map được tạo ra từ lời gọi map() được lưu trong result. Giờ bạn sẽ luyện tập dùng hàm lambda với map(). Trong bài này, bạn sẽ ánh xạ chức năng của hàm add_bangs() mà bạn đã định nghĩa ở các bài trước lên một danh sách chuỗi.
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
- Trong lời gọi
map(), truyền vào một hàm lambda nối chuỗi'!!!'vào một chuỗiitem; đồng thời truyền danh sách các chuỗispells. Gán đối tượng map thu được vàoshout_spells. - Chuyển
shout_spellsthành danh sách và in ra danh sách.
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.
# Create a list of strings: spells
spells = ["protego", "accio", "expecto patronum", "legilimens"]
# Use map() to apply a lambda function over spells: shout_spells
____ = map(____, ____)
# Convert shout_spells to a list: shout_spells_list
____
# Print the result
print(shout_spells_list)