Lambda olayı biraz kafamı karıştırdı. Bunun üzerine mi düşeyim? Yoksa vakitle oturtabilir miyim? vs. ne önerirsiniz?
Tam olarak neresi kafanızı karıştırdı?
Aslında bakınca basit gibi duruyor ancak yapmaya çalışınca aklıma hiçbir şey gelmiyor. Bu durum biraz normal öğrenirken biliyorum ama bunda biraz daha karıştırıyorum.
Tam olarak nesi derken yapısı desem daha doğru olur. Belki çalışma mantığını tam anlasam daha iyi olacak.
Lambda fonksiyonları isimsiz fonsiyonlardır, genellikle fonksiyonun dönürdürdüğü değer yerine referansının gerektiği yerlerde kullanılır. Mesela grafik arayüzdeki bir düğmeye, çağıracağı fonksiyonu atarken:
from tkinter import Tk, Button
tk = Tk()
tk.geometry("200x200")
def output(text):
print(text)
button = Button(
tk,
text="Button",
command=lambda: output("Hello, World!")
).pack(expand=True)
tk.mainloop()
Normal fonksiyon:
def <name>(<args>):
return <return-value>
Lambda fonksiyonu:
lambda <args>: <return-value>
# veya
<name> = lambda <args>: <return-value>
3 Beğeni
# Araba yaşı hesaplama
arabaYasi = lambda yil: 2021 - yil
print("Arabanızın yaşı:",arabaYasi(2012))
# Bakiye Hesaplama
bakiye = {
'miktar':100
}
while True:
b_add = int(input("Eklenecek miktar: "))
if b_add == 00:
print("Çıkış yapılıyor.")
break
bakiyeEkle = lambda b_add: bakiye["miktar"] + b_add
bakiye['miktar'] = bakiyeEkle(b_add)
print(bakiye)
Sanırım daha iyi anladım
2 Beğeni
Bu örneklere doğru da diyemem yanlış da diyemem. Lambdalar daha çok tekrar kullanılmayacak fonksiyonlar tanımlamak içindir.
data = [400, 176, 64, 175, 355, 13, 207, 298, 397, 386, 31, 120, 120, 236, 241, 123, 249, 364, 292, 153]
result = list(filter(lambda num: num % 2 == 1, data))
print(result)
2 Beğeni