Python, “List Comprehension” adı verilen bir konsepti desteklemektedir. Listeleri çok kolay bir şekilde oluşturmak için kullanılan bir özellik.
Öncelikle 100’e kadar bir döngümüz olsun bu döngü 100’e kadar olan sayıların karesini alsın ve bunu bir listeye olarak saklasın
Bunu klasik yaklaşımda nasıl yaparız?
// boş bir liste oluştur
liste = []
// 100'e kadar sayıların karesini hesaplayıp listeye ata
for sayi in range(100):
list.append(sayi**2)
Bunun şöyle bir alternatifine ne dersiniz?
liste = [sayi**2 for sayi in range(100)]
List Comprehension södiziminden bahsedecek olursak tam olarak şöyle bir şey.
list = [x for x in iterable]
Daha iyi kavramak için bir alıştırma yapmak en mantıklısı,
Alıştırma
Öyle bir liste oluşturun ki bu liste sayılar 100’e kadar ki sayıların kendisi ile çarpımından oluşsun. Bunu yorum olarak yazabilirsiniz.
Bu arada, Güral YILDIRIM arkadaşımız bu konuyu çok güzel bir şekilde video olarak açıklamış.
Koşullu List Comprehension oluşturma
Diğer yandan ek olarak List Comprehension yanında koşullu ifadeler de ekleyebiliriz
Örnekten devam edelim, oluşturduğumuz liste değişkeninde sadece ikiye bölünebilen sayıları atamak isteyelim bu durumda koşullu ifadeler işimize yarayacaktır.
liste = [sayi**2 for sayi in range(100) if sayi % 2 == 0]