Tekrar hoş geldiniz.
Sizinle fonksiyonel programlama paradigması içinde düşünmemizi sağlayan bazı faydalı fonksiyonlar hakkında
konuşmak istiyorum.
Bu işlevlerin adı harita filtresidir.
Zip.
Ve azalt.
Ve bunlar bir Python programcısı olduğunuzda çokça yazacağınız çok kullanışlı, çok yaygın fonksiyonlardır.
Şimdi bunları inceleyelim.
İlk olarak Harita ile başlayacağız.
Ve harita aslında burada sahip olduğumuz iki ile çarpma kodunu basitleştirmemizi sağlar.
Harita ile görüyorsunuz, bunu bir işlev olarak, yerleşik bir işlev olarak kullanabiliyorum.
Burada ilk parametreye bir fonksiyon verdiğimizi ve ikinci parametrenin bir yinelenebilir olduğunu görüyoruz.
Bunu düşünmenin iyi bir yolu, burada bir tür eylemde bulunmak istediğimizdir.
Yani bir fonksiyon ve ardından üzerinde işlem yapmak istediğimiz veriler.
Diyelim ki bizim durumumuzda, bir, iki, üç.
Peki hangi eylemi gerçekleştirmek istiyoruz?
Bir, iki, üç.
İki ile çarpmak istiyoruz, o yüzden çarp diyelim.
İkiye kadar.
Şimdi bunu aşağı taşımam gerekiyor çünkü önce fonksiyonu tanımlamamız gerekiyor.
Ve şu şekilde çalıştır.
Bunu basmak yerine şöyle yapalım.
Yazdır.
Eğer çalıştırırsam böyle olur.
Bu bellek konumunda bir harita nesnesi alıyorum.
Ve MAP otomatik olarak bize bu bellekte yarattığı bu nesneyi verir.
Bu yüzden onu gerçekten görüntüleyebilmemiz için aşağıdaki gibi bir listeye dönüştürmemiz gerekir.
Yani bunu çalıştırırsam.
Satırda int'l nesne için yinelenebilir değil diyor.
Bunun nedeni, map ile artık bir listeye ekleme yapmak yerine liste oluşturma işlemini yapmamıza gerek kalmamasıdır.
Gördüğünüz gibi, haritanın güzel yanı, ona bazı veriler vermem ve daha sonra bu verilerin bunun tarafından harekete geçirilmesidir.
Ve map fonksiyonu ile yapmamız gereken tek şey, geri dönen bir fonksiyona sahip olmaktır.
Bu parça iki kez.
Yani tüm bu kodlara sahip olmak yerine tek yapmamız gereken return demek.
Eşya.
İki kere.
Bu parametreyi item olarak değiştirelim.
Ve koda biraz daha detaylı bakın.
Yani harita ile diyorum ki, Hey, fonksiyonu çalıştırmanı istiyorum.
İkiyle çarp.
Burada parantez bile kullanmadığıma dikkat edin çünkü harita benim için bunu yapıyor dememe gerek yok.
Harita sadece "Hey, bana sadece işlevi ver, gerisini ben hallederim" diyor.
Yani burada fonksiyonu çağırmıyorum.
Harita benim için işlevi çağıracak.
Sadece diyorum ki, hey, haritayı böyle aradığımda.
Bu işlevi bu bellek adresinde kullanmanızı ve bu verileri kullanmanızı istiyorum.
Fonksiyonel programlama paradigmamızı hatırlayın.
Elimizde harekete geçirilecek veriler var, bu yüzden bu ikisini birbirinden ayırıyoruz.
Şimdi bu fonksiyon aralıklarımızdaki öğelerin her birini alacak.
Bizim durumumuzda, ilk seferde bir, sonra iki, sonra üç olacak.
Ve sonra tek yapmamız gereken o öğe üzerinde istediğimiz etkiyi geri döndürmek.
Bizim durumumuzda, iki.
Böylece map bu işlevi bizim için otomatik olarak çalıştırır ve yinelenebilirdeki tüm öğeler arasında
döngü yapar ve bunu çalıştırırsam listeye dönüştüreceğimiz yeni bir map nesnesi döndürür.
Altıya iki mi alacağım?
Şimdi, işte işin güzel kısmı.
Eğer yaparsam, diyelim ki listem ve ben bir, iki, üç diyorum.
Ve buradaki listemi değiştirdim.
Bunun gibi.
Sonunda da listemi yazdırın.
Çalıştır'a tıklarsam.
Listemin değişmediğini göreceksiniz.
Hatırladın mı?
Saf işlev, dış dünyayı etkilemeyen bir işlevdir.
Ve bu yol haritası yepyeni bir liste oluşturmamızı sağlar.
Bu benim listemi değiştirmez.
Yani benim listem değişmez, değil mi?
Değiştirmeyeceğiz.
Ve tek yaptığı map fonksiyonudur, bununla ilgilenir ve bizim için yeni bir liste döndürür.
Ama biz dış dünyayı etkilemiyoruz.
Bu işlevde hiçbir yan etki yoktur.
Basitçe öğeden öğeye ikiyle çarpıyoruz, ancak bundan yeni bir liste oluşturuyoruz.
Ve ona aynı girdiyi her verdiğimizde, aynı çıktıyla sonuçlanacaktır.
Çok, çok havalı.
Ve harita son derece kullanışlıdır çünkü üzerinde yineleme yapabileceğimiz bir şeyimiz olduğunda ve değiştirmek
istediğimizde.
Diyelim ki e-postalarımız veya kullanıcı adlarımız var ve kullanıcı adlarını, diyelim ki tamamı büyük harf olacak şekilde güncellememiz gerekiyor.
Bu durumda, yineleme yapabilir ve map işlevini kullanarak listemizdeki tüm kullanıcı adlarını diyelim ki büyük harflerle değiştirebiliriz.
MAP, programlama kariyerinizde çok kullandığınız fonksiyonlardan biri olacak.
Ve umarım burada fonksiyonel programlama paradigmalarını kullanarak ne kadar temiz ve güzel olduğunu görebilirsiniz.
Bir sonrakine geçelim.
Filtre hakkında konuşalım.
Sıradaki.