Merhabalar
Python programlama derslerine "List Comprehension" kavramı üzerinden devam ediyoruz. Bu dersimiz daha çok uygulamaya yönelik olacaktır.
Bu ders, önceki derslerde verilen bilgiler üzerine bina edilecektir.
(Hatırlatması için) List Comprehension'un genel yazımı aşağıdaki gibidir:
Şimdi bir listeden farklı bir liste elde edeceğimiz bir uygulama yapalım :
mainList adında 7 elemanlı bir listemiz olsun ve biz list comprehension yöntemini kullanarak bu listeden çift sayı ve tek sayı listesi oluşturalım :
İlk olarak ciftList adında bir liste oluşturduk. Bu liste mainList listesinin elemanlarının çift sayıya dönüşmüş hallerinden oluşmaktadır.
item * 2 for item in mainList
ifadesini formül ve for döngüsü şeklinde iki ayrı bölüm gibi düşünelim.
for item in mainList
döngüsü ile mainList listesinin her bir elemanına erişilmek istenmiştir. Erişilen her eleman da
item * 2
formülünde olduğu gibi 2 ile çarpılmış ve yeni listemiz olan ciftList listesi oluşturulmuştur.
Aynı şekilde mainList listesi kullanılarak tek sayı listesi oluşturulması da aşağıdaki gibidir :
Şimdi de biraz daha farklı bir uygulama yapalım. Uygulamamızda liste ve içerisinde demetler bulunsun ve biz bu demetleri kullanarak "List Comprehension" yöntemiyle yeni bir liste oluşturalım :
Uygulamamızda kullandığımız myList listesinin elemanları 2 boyutlu demetlerdir(tuple). Biz demetlerin elemanlarını kullanarak yeni bir liste oluşturmak istiyoruz.
Döngülerle alakalı derslerimizde bu şekilde 2 boyutlu demet elemanlarına erişmek için for döngüsünde i ve j şeklinde iki değişken kullanmıştık.
Bu örneğimizde
i*j for i,j in myList
ifadesini yine ikiye bölerek inceleyebiliriz : sol taraftaki formül kısmı ve sağ taraftaki döngü kısmı
for i,j in myList
döngüsü ile demetlerin elemanlarına erişilmekte
i * j
ifadesi ile de bu elemanları birbiri ile çarparak yeni dizi elemanları oluşturmaktadır. Dolayısıyla çıktımız aşağıdaki gibidir:
Şimdilik bu kadar.
Umarım faydalı bir çalışma olmuştur.
Teşekkürler.
Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me