Python'da Üst Düzey İşlevler Higher Order Functions Kullanımı ve Örnekler yazımızda, Python programlama dilinde nasıl üst düzey işlevler kullanabileceğinizi ve bunların örneklerini bulacaksınız Bugün öğrenin ve kodlarınızı daha akıllı hale getirin!

Python, yüksek seviyeli programlama dillerinden biridir ve bu dilde, kodunuza daha fazla okunaklılık kazandıran bazı özellikler bulunmaktadır. Bu özelliklerden biri, Higher Order Functions'dır. Higher Order Functions, diğer fonksiyonları argüman olarak alan veya fonksiyonlar döndüren bir fonksiyon türüdür. Bu, kodunuzu daha okunaklı ve sürdürülebilir hale getirir.
Higher Order Functions kullanımı, kodunuzu daha az yazmanızı sağlar ve hataları azaltır. Ayrıca, bu özellik, Python'da işlevsel programlama tarzını uygulamak için önemlidir. Bu makalede, Higher Order Functions nedir, nasıl kullanılır ve örneklerle açıklanmıştır. Bu özellikleri anlamak, diğer programlama dillerinde de benzer şekilde kullanılmaktadır ve bu nedenle Python programlama dilinde önemlidir.
Higher Order Functions Nedir?
Higher Order Functions, diğer fonksiyonları argüman olarak alan veya fonksiyonlar döndüren fonksiyonlardır. Bu sayede, fonksiyonlar daha esnek hale gelir ve daha fazla işlevsellik sağlayabilirsiniz. Bu konsept, Python'da işlevsel programlama tarzını uygulamak için gereklidir. Yani, fonksiyonların sadece bir input ve bir output olmadığı, başka fonksiyonlar tarafından da kullanılabildiği bir yapıdır. Higher Order Functions, kod yazımını daha kolay hale getirebilir ve tekrarlayan kodları en aza indirebilir. Böylece, kodunuz daha okunaklı ve anlaşılır hale gelir.
Higher Order Functions'ın Avantajları Nelerdir?
Higher Order Functions, diğer fonksiyonları argüman olarak alan veya fonksiyonlar döndüren fonksiyonlar olduğundan kodunuzu daha okunabilir ve anlaşılır hale getirir. Kodunuzu işlevsel programlama tarzına uygun hale getirmenize yardımcı olan Higher Order Functions, daha az kod yazarak daha kısa kodlar oluşturmanıza olanak tanır.
Higher Order Functions kullanımı, hataları azaltarak güvenilir bir kod yazmanıza yardımcı olabilir. Aynı zamanda, kodunuzu daha güçlü ve esnek bir hale getirerek, daha karmaşık kodları yönetmenize olanak sağlar. Bu nedenle, Python'da Higher Order Functions kullanımı, kodunuzu daha sürdürülebilir hale getirmenize olanak tanır.
Örnek 1: Map()
Örnek 1'de kullanacağımız Higher Order Functions fonksiyonu, map() fonksiyonudur. Bu fonksiyon, bir fonksiyonu bir dizideki her öğeye uygular ve yeni bir liste döndürür. map() fonksiyonunun kullanımı oldukça kolaydır. İlk olarak, bir fonksiyon ve bir dizi oluşturmanız gerekir. Daha sonra, map() fonksiyonunu kullanarak, fonksiyonu dizinin her öğesine uygulayarak yeni bir liste oluşturabilirsiniz.
Aşağıdaki örnekte, lambda fonksiyonu kullanarak, bir sayı dizisindeki her sayıyı 2 ile çarpıyoruz. Bu işlemin sonucunda, yeni bir liste oluşturulur ve örnek çıktı olarak verilir.
Kod | Çıktı |
---|---|
numbers = [1, 2, 3, 4] result = map(lambda x: x * 2, numbers) | [2, 4, 6, 8] |
Yukarıdaki tabloda verilen kodu çalıştırdığımızda, map() fonksiyonu sayesinde verilen fonksiyonu, numbers dizisindeki her bir öğeye uygular ve her bir öğeyi 2 ile çarparak yeni bir liste oluşturulur. Bu listenin çıktısı, örnek çıktı olarak verilmiştir.
Map() fonksiyonu, Python'da çok kullanışlı bir fonksiyondur. Özellikle, bir liste üzerinde döngü yapmak yerine bu fonksiyonu kullanarak kolaylıkla yeni bir liste oluşturabilirsiniz.
Örnek 1 Kod:
Higher Order Functions kullanımına örneklerle devam edelim. Örneğimizde, map() fonksiyonunu kullanarak bir dizi içindeki her öğenin iki katını alacağız. Önce, bir 'numbers' adında bir liste oluşturuyoruz ve bunun elemanları 1, 2, 3 ve 4'tür:
Kod | Çıktı |
---|---|
numbers = [1, 2, 3, 4] result = map(lambda x: x * 2, numbers) | [2, 4, 6, 8] |
Bu kodu çalıştırdığımızda map() fonksiyonu, fonksiyonumuzu her bir 'numbers' listenin öğesi için çalıştıracaktır. Fonksiyonumuz, girdi olarak aldığı her öğeyi 2 ile çarparak yeni bir liste döndürür. Sonuç olarak, 'result' adında bir liste içinde [2, 4, 6, 8] değerleri elde edilir.
resultMap() fonksiyonu, bir fonksiyonu bir dizideki her öğeye uygular ve yeni bir liste döndürür. Örnek bir kullanım şu şekildedir:
Kod | Çıktı |
---|---|
numbers = [1, 2, 3, 4] result = map(lambda x: x * 2, numbers) | [2, 4, 6, 8] |
Yukarıdaki kodda, lambda ifadesi ile x değerinin 2 ile çarpımı gerçekleştiriliyor ve numbers listesindeki her öğeye uygulanıyor. Sonuç olarak, yeni bir liste olan result oluşturuluyor ve bu liste [2, 4, 6, 8] şeklinde çıktı olarak elde ediliyor. Bu örnekte, map() fonksiyonunun kullanımı, Higher Order Functions kavramının önemi ve faydalarını göstermektedir.
Örnek 1 Çıktı:
Yukarıdaki örnekte, map() fonksiyonu kullanıldı ve lambda x: x * 2 işlevi map() fonksiyonunun argümanı olarak verildi. Ardından, map() fonksiyonu numbers listesindeki her öğeye lambda işlevini uyguladı ve sonuçta yeni bir liste döndürdü. Bu yeni liste, 2 ile çarpılmış önceki öğelerin listesidir. Bu nedenle, örnek 1 çıktısı = [2, 4, 6, 8] şeklindedir.
Örnek 2: Filter()
Python'da Higher Order Functions kullanımının örneklerinden biri de Filter() fonksiyonudur. Bu fonksiyon, bir dizi içindeki öğeleri belirli bir koşula göre filtreler ve yeni bir liste döndürür. Filter() fonksiyonu, map() fonksiyonuna benzer şekilde çalışsa da, farklı bir yaklaşım sergiler.
Filtrelemek istediğimiz dizini belirledikten sonra, Filter() fonksiyonu ile bir lambda fonksiyonu kullanarak belirli bir koşulu sağlayan öğeleri seçebiliriz. Bu sayede, dizi içindeki istenmeyen verileri atabilir ve yalnızca istediğimiz öğeleri alabiliriz.
Kod | Çıktı |
---|---|
numbers = [1, 2, 3, 4] result = filter(lambda x: x % 2 == 0, numbers) | [2, 4] |
Yukarıdaki örnekte, filter() fonksiyonu, numbers adlı bir dizi içindeki öğeleri, lamba fonksiyonu kullanarak filtreler. Bu lambda fonksiyonu, dizinin öğelerinin sadece çift sayılarından oluşmasını sağlar. Sonuç olarak, filter() fonksiyonu yeni bir liste oluşturur ve bu listeyi result adlı değişken ile eşler.
Filter() fonksiyonu, özellikle büyük dizilerde kullanıldığında etkili bir araçtır. Bu fonksiyon sayesinde, istediğimiz verileri seçip diğerlerinden kurtulabilir ve kodumuzu daha okunaklı hale getirebiliriz.
Örnek 2 Kod:
Higher Order Functions kullanmanın bir diğer avantajı, kodunuzu daha kısa hale getirmenizdir. Birinci örnekte olduğu gibi, birkaç satırlık kod yerine tek satırda yapabilirsiniz. Örnek 2 kodunu inceleyecek olursak:
Kod | |
---|---|
1 | numbers = [1, 2, 3, 4] |
2 | result = filter(lambda x: x % 2 == 0, numbers) |
Yukarıdaki tabloda, örnek 2 kodu iki satırdan oluşmaktadır. Burada, filter() fonksiyonunu kullanarak, numbers listesindeki çift sayıları filtreledik. Şimdi, kodumuzu daha iyi anlamak için satır satır inceleyelim:
- 1. Satır: numbers adlı bir liste tanımladık.
- 2. Satır: filter() fonksiyonu, bir argüman ve bir dizi alır. Burada lambda x: x % 2 == 0 argümanı, x'in çift olduğunu kontrol eden bir fonksiyondur. Daha sonra, bu fonksiyonu numbers listesindeki her öğeye uyguluyoruz. filter() fonksiyonu, x'in fonksiyondan geçtiği öğeleri yeni bir liste olarak döndürür.
Yukarıdaki kodu kullanarak, çift sayıları filtrelemek konusunda daha iyi bir anlayışa sahip olabilirsiniz. Higher Order Functions kullanarak, kodunuzu kısaltabilir ve daha okunaklı hale getirebilirsiniz.
resultresult = filter(lambda x: x % 2 == 0, numbers)
Yukarıdaki kod, numbers adlı listenin her öğesini 2 ile modunu alarak filtreler ve yalnızca çift olan öğeleri yeni bir liste olarak döndürür.
Bu kodda kullanılan lambda ifadesi, tek bir satırda işlev tanımlamanın basit bir yoludur. Burada, x % 2 == 0 koşulunu sağlayan öğeleri döndüren bir işlev tanımlanmıştır.
Filter() fonksiyonu, bir listenin veya bir dizi nesnenin her öğesi üzerinde belirli bir koşula göre filtreleme işlemi yapar. Bu koşula uyan öğeler yeni bir liste halinde döndürülür. Bu örnekte, filtreleme işlemi, yalnızca çift sayıları içeren bir yeni liste oluşturmak için kullanılmıştır.
Aşağıdaki tabloda, örnek koddaki filter() fonksiyonunun parametreleri açıklanmaktadır:
Fonksiyon | Açıklama |
---|---|
filter() | Bir fonksiyonu bir dizideki her öğeye uygular ve yalnızca koşulu sağlayan öğeleri yeni bir liste olarak döndürür. |
lambda | Satır içi bir fonksiyon tanımıdır. Tek seferlik kullanımlar için uygundur. |
x | Dizi veya liste öğelerini temsil eden yer tutucu bir değişkendir. |
x % 2 == 0 | Koşul ifadesidir. Bu ifadeye uyan öğeler, filtreleme işlemi sonucunda yeni bir liste olarak döndürülür. |
Bu örnekte, filter() fonksiyonu kullanılarak daha temiz ve okunaklı bir kod yazılmış ve yalnızca çift sayılar içeren bir liste oluşturulmuştur.
Örnek 2 Çıktı:
Yukarıdaki örnekte, Filter() fonksiyonu kullanılarak "numbers" adlı dizideki çift sayılar filtrelenmiş ve yeni bir liste olan "result" oluşturulmuştur. Örnek 2 çıktısı, yalnızca 2 ve 4 içeren bir listedir.
Sonuç
Makalenin sonunda, Higher Order Functions kullanarak kodunuzu daha okunaklı ve temiz hale getirebileceğinizi öğrendiniz. Bu fonksiyonlar, diğer fonksiyonları argüman olarak alan veya fonksiyonlar döndüren fonksiyonlardır ve Python'da işlevsel programlama tarzını uygulamak için gereklidirler.
Higher Order Functions kullanarak kodunuzu daha okunaklı hale getirerek, kodunuzu daha iyi anlaşılır hale getirebilirsiniz. Ayrıca, görevleri daha az kod yazarak halledebilir ve hataları azaltabilirsiniz. Örnekler olarak, map() fonksiyonu bir fonksiyonu bir dizideki her öğeye uygular ve yeni bir liste döndürür. Filter() fonksiyonu ise bir dizideki öğeleri belirli bir koşula göre filtreler ve yeni bir liste döndürür.
Bu makalede Higher Order Functions nedir, nasıl kullanılır ve örnekler ile açıklandı. Artık Python'da daha okunaklı ve anlaşılır kod yazmak için Higher Order Functions'ı kullanabilirsiniz.