Python'a özgü olan ve Python programcıları olarak işleri gerçekten çok güzel hale getiren bir şeyden bahsedelim
ve buna anlama denir.
Bu bizim anahtar terimlerimizden biri.
Anlama.
Neymiş onlar?
Aslında bunlara liste anlama, küme anlama ya da sözlük anlama deniyor.
Ve bunlar Python'da sahip olduğumuz veri türlerinden bazılarıdır.
Ve bu üç veri türüyle anlama özelliğini kullanabiliyoruz.
Bu arada, ben kayıt yaparken arka planda kuş cıvıltıları duyuluyor.
Arka planda kuş cıvıltıları varken kayıt yapmanın güzel olacağını düşündüm.
Bence sinirlenirsen senin için daha huzurlu olur.
Üzgünüm ama kuşlar da eğlenmeli.
Tamam, peki bu anlayışlar da nedir?
Python'da listeler, kümeler ya da sözlükler oluşturmanın hızlı bir yoludur, belki de döngü yapmak ya da listelere
bir grup öğe eklemek yerine.
Şimdi size listem boş bir listeye eşittir gibi bir şey yapmak yerine buradan dört karakter ve merhaba
gibi bir şey yapacağımı göstereyim.
Benim listem nokta ekleme.
Karakter.
Sonunda bu listeyi oluşturabileyim diye.
Diyelim ki benim listem ve bunun çıktısını alacağız.
Çalıştır'a tıklarsam.
Hello'daki karakterleri içeren bir liste oluşturdum.
Tamam, ama.
Bunu yapmanın daha hızlı, daha temiz bir yolu var mı?
Ve evet, Python'da liste kavrama özelliği vardır.
Yine, oldukça benzersizdir.
Bunu pek çok programlama dilinde göremezsiniz, ancak Python kullanan insanlar bu özelliği gerçekten seviyorlar.
Ben de öyle.
Peki bunu nasıl yapabiliriz?
Bir liste anlayışı kullanmak.
İzleyeceğimiz format şu şekilde olacak.
Parab diyeceğiz.
İçin.
Param iterable içinde.
Yani param dediğimde parametre demek istiyorum ya da bizim durumumuzda bir değişken olabilir, bu yüzden istediğimiz ismi verebiliriz.
Bu karakteri burada yaptığımız gibi adlandıralım ve sonra karakteri burada yaptığımız gibi adlandıralım.
Ve sonra bir yinelenebilir istiyoruz.
Bizim durumumuzda, merhaba diyeceğiz.
Böylece bunu kaldırırsam ve Çalıştır'a tıklarsam.
Ben de aynı şeyi yaşıyorum.
Üçüncü satırda oluşturulduktan sonra, karakter ve hello içeren bir liste oluşturuyorum.
Burada dört döngü yapıyorum ve listeyi oluşturuyorum.
Bunu düşünmenin yolu, hey, bir değişken oluşturun ve sonra
listeye eklenen iterable'daki her değişken için hey diyerek bir for döngüsü yapacağız.
Tamam.
Bunu biraz daha açalım.
Diyelim ki başka bir şey yapmak istedim.
Buna da benim listem diyelim.
Ve diyelim ki 0 ila 100 veya 0 ila 99 arasında değişen sayılardan oluşan hızlı bir liste oluşturmak istiyorum.
Bunu nasıl yapabilirim?
Yine liste anlayışını kullanarak.
Dört numara diyeceğim.
Ve sonra kullanacağım kural nedir?
Bir aralık kullanacağım ve 0 ila 100 diyeceğim, böylece burada çalıştır'a tıklarsam.
Şuna bak.
Tüm bu numaralarla önceden doldurulmuş güzel ve uzun bir liste alıyorum.
Ne kadar havalı değil mi?
Tamam.
Ama işte size meydan okuyorum.
Ya bunu isteseydim?
Ancak tüm sayılar iki ile çarpılmalıdır.
Bu yüzden bunun sıfıra eşit olduğu yerleri listelemek istiyorum.
Bu iki.
Bu dört.
Bu altı.
Bu sekiz.
Bu on.
Vesaire vesaire.
Bunu nasıl yapabilirim?
Aslında bunu genişletebiliriz, böylece bu sefer üçüncü listem daha önce gördüğümüz aynı dört döngüyü
kullanacak.
Bunun gibi.
Ancak bu artık sadece değişken yerine, her karaktere nasıl davranmak istediğimizin bir ifadesidir.
Tıpkı Lambda İfadelerinde gördüğümüz gibi.
Artık Numb Times'a diyebilirim.
İçin.
Bu eşyalar.
Şimdi listemi üç yaparsam.
Hey, şuna bak.
Bu çok hoş, değil mi?
Tamam.
Bunu daha da zorlaştıralım.
Listem üç diyelim ve bunu biraz daha büyütelim.
Benim listem.
Bunu değiştirmek istiyorum, böylece listemde hala burada ne tutuyorum?
Numaralar bende var ama sadece çift numaraları saklamak istiyorum.
Bu durumda, ikiyle çarpıldıkları için bile hepsi öyledir.
Ancak, örneğin, ikinin kuvvetine göre yaparsak ve bunu bir saniyeliğine yorumlayalım ve Çalıştır'a tıklayalım.
Bazı rakamların öyle olmadığını görüyoruz.
Yine de bu rakamları saklamak istiyorum.
Ama sadece çift olanlar.
Bunu nasıl yapabilirim?
Bu durumda, bu liste ifadesini oluşturmak için yeni bir yolumuz var.
Burada yaptığımızın aynısını yapacağız.
O yüzden bunu kopyalayacağım.
Ama sonunda, unutmayın, artık burada bir ifademiz var, yinelenebilirdeki öğe her neyse onu etkilemek
için yapacağımız bir şey.
Bazı şeylerin üzerinden geçeceğiz.
Ve son olarak bundan sonra, eğer diyebiliriz veya bir eğer koşulu yapabiliriz.
Diyelim ki bizim durumumuzda, eğer num diyeceğim.
Modulo iki sıfıra eşittir.
Ancak o zaman listeye ekleyin.
Yani Çalıştır'a tıklarsak.
Oh.
Ve Tıkla Çalıştır için listede olduğundan emin olun.
Şuna bak.
Bunların hepsi çift sayılardır.
Şimdi bu formata bakalım.
Unutmayın.
Bunlara liste kavrama denir.
Bu, döngü oluşturmak ve append veya daha önce gördüğümüz şeyleri kullanmak yerine Python ile hızlı bir şekilde listeler oluşturmamızın
bir yoludur.
Yani bu, bu şekilde benzersiz şeyler yapmamız için kısaltılmış bir form.
Bunu yapabilmemizin yolu, üzerinde yinelediğimiz her bir öğe ile ne yapmak istediğimize dair bir ifadeye
sahip olmaktır.
Döngü yapıyoruz.
Bir iterable üzerinden bir for döngüsü kullanarak, ona üzerinde hareket edeceğimiz bir değişken
veririz ve sonra istersek, bir koşul ekleme seçeneğimiz de vardır ve hey, bunu yalnızca bu koşula dayalı olarak, doğru veya yanlışa
dayalı olarak listeye dahil et deriz.
Çok, çok havalı.
Şimdi, liste anlayışı gerçekten güzel olsa da, çünkü bunlar sadece basit tek satırlık ifadelerdir.
Bu koda bakmak oldukça kafa karıştırıcı olabilir.
Neler olup bittiğini gerçekten anlamak için liste kavramaya gerçekten aşina olmanız gerekir.
Bu, kodu daha kısa, hatta daha temiz hale getirse de, okunabilirliğini biraz ortadan kaldırır.
Bu nedenle, çift sayıların listesini oluşturmak gibi açıklayıcı bir işlev oluşturmak daha iyi
olabilir.
Böylece daha açıklayıcı olur ve başka bir geliştirici neler olup bittiği hakkında daha iyi bir fikre sahip olabilir.
Yani bu her zaman bir değiş tokuş.
Bir ara verelim ve bir sonraki videoda set ve sözlük anlama hakkında konuşalım.
Güle güle.