Python Lambda İşlevleri: Anonim İşlevler Kılavuzu

Python'da anonim lambda işlevlerinin nasıl yazılacağını öğrenin. Lambda söz dizimi ile map(), filter() ve sorted() yöntemlerini kullanarak işlevsel programlama modellerinde ustalaşın.

Editör'de deneyin

Genel Bakış

Python'da, anonim işlevler olarak da bilinen lambda işlevleri, standart "def" anahtar sözcüğünü veya resmi bir adı gerektirmeyen küçük, hızlı, tek satırlık işlevlerdir. Bunlar geçici, hızlı kullanıma yöneliktir ve işlevsel mantığı doğrudan satır içi bir argüman olarak aktarmanıza olanak tanır. Bu, kodunuzu daha kompakt hale getirerek yalnızca tek bir yerde çağrılan tam teşekküllü yardımcı işlevleri yazma yükünü azaltır.

Bir lambda fonksiyonunun sözdizimi basittir: 'lambda argümanları: ifade'. Standart işlevlerden farklı olarak lambda'nın açık bir 'return' ifadesi yoktur; ifade değerlendirilir ve otomatik olarak döndürülür. Ayrıca, lambda işlevleri tek bir ifadeyle sınırlıdır; bu, bunların içine karmaşık çok satırlı döngüler, atamalar veya koşul blokları yazamayacağınız anlamına gelir; bu da temiz, işlevsel bir yaklaşımı zorunlu kılar.

Lambda işlevleri genellikle "map()" (listedeki her öğeye bir işlev uygulayan), "filter()" (bir koşulla eşleşen öğeleri tutan) ve "sorted()" (öğeleri özel bir sıralama anahtarı kullanarak sıralayan) gibi yerleşik üst düzey işlevlerle birlikte kullanılır. Örneğin, bir sözlük listesini belirli bir sözlük anahtarına göre sıralamak, sıralama anahtarı olarak lambda kullanıldığında çocuk oyuncağıdır. Lambda işlevlerini anlamak size temiz Python kodu yazmak için hayati bir araç sağlar.

Kod ve Yürütme Çıkışı

Satır içi anonim işlevleri kullanarak karmaşık sözlük listelerini sıralama ve veri kümelerini filtreleme.

lambda_demo.py
Editör'de deneyin
# Sorting using lambda
students = [
    {"name": "Alice", "grade": 88},
    {"name": "Bob", "grade": 95},
    {"name": "Charlie", "grade": 90}
]

# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
    print(f"- {student['name']}: {student['grade']}")

# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")
Terminal Çıkışı
Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88

Odd numbers: [1, 3, 5, 7]

Adım Adım Uygulama

  • Özel sıralama kriterlerini list.sort() ve sorted()'a aktarma
  • Veri bilimi ardışık düzenlerinde satır içi dönüşümleri uygulama
  • Olay odaklı kullanıcı arayüzü uygulamalarında hızlı geri aramaları tanımlama

Sıkça Sorulan Sorular

Bir lambda işlevi birden fazla argüman alabilir mi?

Evet, virgülle ayrılmış birden çok bağımsız değişken tanımlayabilirsiniz; örneğin lambda x, y: x + y.

Lambda işlevlerine neden anonim deniyor?

Çünkü bunlar, yerel ad alanına belirli bir adı kaydeden def işlevlerinin aksine, ad bağlaması olmadan yaratılırlar.

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.