Map() ve lambda fonksiyonları
Şimdiye kadar lambda fonksiyonlarını kısa, basit fonksiyonlar yazmak ve basit işlevlere sahip fonksiyonları yeniden tanımlamak için kullandınız. Ancak lambda fonksiyonlarının en iyi kullanım alanı, bu basit işlevlerin daha büyük ifadelerin içine anonim olarak gömülmesini istediğiniz durumlardır. Bunun anlamı, def ile tanımlanan bir işlevin aksine, işlevin ortamda saklanmadığıdır. Bu fikri daha iyi anlamak için, map() işlevi bağlamında bir lambda işlevi kullanacaksınız.
Videodan map() adresinin liste gibi bir nesne üzerine bir fonksiyon uyguladığını hatırlayın. Burada, map() adresinin nesneyi işlemek için kullanacağı işlevi tanımlamak için lambda işlevlerini kullanabilirsiniz. Örneğin:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Burada a değerini 2'nin kuvvetine yükselten bir lambda fonksiyonunun map() adresine bir sayı listesiyle birlikte aktarıldığını görebilirsiniz, nums. map() çağrısı sonucunda elde edilen harita nesnesi result adresinde saklanır. Şimdi map() ile lambda fonksiyonlarının kullanımını uygulayacaksınız. Bu alıştırma için, önceki alıştırmalarda tanımladığınız add_bangs() işlevinin işlevselliğini bir dizeler listesi üzerinde eşleyeceksiniz.
Bu egzersiz
Python'da Fonksiyonlara Giriş
kursunun bir parçasıdırEgzersiz talimatları
map()çağrısında,'!!!'dizesiniitemdizesiyle birleştiren bir lambda işlevi geçirin; ayrıca dizelerin listesini de geçirin,spells. Ortaya çıkan harita nesnesinishout_spellsadresine atayın.shout_spellsadresini bir listeye dönüştürün ve listenin çıktısını alın.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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)