Map() ve lambda fonksiyonları
Şu ana kadar, lambda fonksiyonlarını kısa ve basit fonksiyonlar yazmak ve basit işlevleri olan fonksiyonları yeniden tanımlamak için kullandın. Ancak lambda fonksiyonlarının en iyi kullanım alanı, bu basit işlevleri daha büyük ifadelerin içine isimsiz şekilde gömmek istediğinde ortaya çıkar. Bunun anlamı, def ile tanımlanan fonksiyonların aksine, bu işlevlerin ortamda saklanmamasıdır. Bu fikri daha iyi kavramak için, map() fonksiyonu bağlamında bir lambda fonksiyonu kullanacaksın.
Videodan hatırla, map() bir fonksiyonu bir nesne (ör. bir liste) üzerinde uygular. Burada, map()'in nesneyi işlerken kullanacağı fonksiyonu lambda ile tanımlayabilirsin. Örneğin:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Burada, a değerini 2. kuvvetine yükselten bir lambda fonksiyonunun, sayı listesi nums ile birlikte map()'e geçirildiğini görüyorsun. map() çağrısından dönen map nesnesi result içinde saklanır. Şimdi map() ile lambda fonksiyonlarını kullanma pratiği yapacaksın. Bu egzersizde, önceki egzersizlerde tanımladığın add_bangs() fonksiyonunun işlevini bir dizi string üzerinde eşleyeceksin.
Bu egzersiz, kursun bir parçasıdır
Python'da Fonksiyonlara Giriş
Egzersiz talimatları
map()çağrısında, biritemstring'ine'!!!'ekleyen bir lambda fonksiyonu ve string listesini, yanispells'i geçir. Ortaya çıkan map nesnesinishout_spellsdeğişkenine ata.shout_spells'i listeye dönüştür ve listeyi yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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)