Map() dan fungsi lambda
Sejauh ini, Anda telah menggunakan fungsi lambda untuk menulis fungsi pendek dan sederhana serta untuk mendefinisikan ulang fungsi dengan fungsionalitas sederhana. Namun, kasus penggunaan terbaik untuk fungsi lambda adalah ketika Anda ingin fungsionalitas sederhana tersebut disisipkan secara anonim di dalam ekspresi yang lebih besar. Artinya, fungsionalitas tersebut tidak disimpan di lingkungan, berbeda dengan fungsi yang didefinisikan menggunakan def. Untuk memahami gagasan ini lebih baik, Anda akan menggunakan fungsi lambda dalam konteks fungsi map().
Ingat dari video bahwa map() menerapkan sebuah fungsi pada suatu objek, seperti list. Di sini, Anda dapat menggunakan fungsi lambda untuk mendefinisikan fungsi yang akan digunakan map() untuk memroses objek. Contohnya:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Tampak di sini bahwa sebuah fungsi lambda, yang mempangkatkan nilai a dengan 2, diteruskan ke map() bersama dengan list angka, nums. Objek map yang dihasilkan dari pemanggilan map() disimpan dalam result. Sekarang Anda akan mempraktikkan penggunaan fungsi lambda dengan map(). Pada latihan ini, Anda akan memetakan fungsionalitas dari fungsi add_bangs() yang Anda definisikan pada latihan sebelumnya ke sebuah list string.
Latihan ini adalah bagian dari kursus
Pengantar Fungsi di Python
Petunjuk latihan
- Dalam pemanggilan
map(), teruskan fungsi lambda yang menggabungkan string'!!!'ke sebuah stringitem; teruskan juga list string,spells. Tetapkan objek map yang dihasilkan keshout_spells. - Konversikan
shout_spellsmenjadi list dan cetak list tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)