21 Ağustos 2008 Perşembe

Filter

Ben bu gece yazı yazmaktan kusmaz isem filter kullanımını öğreneceğiz hep birlikte...
filter bir listede ayıklama yapmaya yarar. Elinizdeki listeden belli kurallara uymayan elemanları çıkarmak istediğinizde uzun uzun döngüler kurmak yerine filter fonksiyonunu kullanabilirsiniz.
Kullanımı:
filter (fonksiyon , liste)
Şeklindedir listedeki her eleman fonksiyona tek tek parametre olarak gönderilir, eğer fonksiyon true olarak dönüyorsa listedeki eleman silinmez false olarak dönüyorsa silinir. Hemen güzel bir örnek ile pekiştirelim.
Önce tek parametreye sahip, verilen parametrenin 2 ye bölümünden kalan 0 dan büyükse (yani verilen sayı tek sayı ise) True döndüren bir fonksiyon belirleyelim.
def is_odd(number):
return number % 2 > 0

Şimdi elimizdeki bir sayı listesine bu fonksiyonu
def is_odd(number):
return number % 2 > 0
numbers = range(10) # 10'a kadar olan sayıları içeren bir liste
odds = filter(is_odd,numbers)
print odds
[1,3,5,7,9]

Biraz daha neşelendirip bu fonksiyonu lambda ile tanımlarsak.. Program tek satıra iniyor.

odds = filter(lambda number : number % 2 > 0, range(10))
print odds
[1,3,5,7,9]

Hiç yorum yok:

Yorum Gönder