BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Egzersiz talimatları

  • map() çağrısında, '!!!' dizesini item dizesiyle birleştiren bir lambda işlevi geçirin; ayrıca dizelerin listesini de geçirin, spells. Ortaya çıkan harita nesnesini shout_spells adresine atayın.
  • shout_spells adresini 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)
Kodu Düzenle ve Çalıştır