Python’da “List Comprehension” Kullanımı
Bu yazımızda, Python programlama dilindeki “List Comprehension” konseptinin kullanımı hakkında detaylı bir inceleme yapacağız. “List comprehension”, Python’da listeleri kısa ve etkili bir şekilde oluşturmanın harika bir yoludur. Peki bu yapı bize neyi pratikleştiriyor? Gelin birlikte keşfedelim.
“List Comprehension” Nedir?
“List comprehension” terimi, İngilizce “list” ve “comprehension” kelimelerinin birleşiminden oluşur. “List” kelimesi, bir dizi ya da koleksiyonu ifade ederken, “comprehension” kelimesi “anlama” ya da “kavrama” anlamına gelir.
Ancak bu kelime anlamını biraz daha genişletecek olursak; “bir listeyi kavrayan veya içeren yapı” olarak düşünebiliriz. Yani belirli bir matematiksel ya da mantıksal kavramı ya da işlemi kısa ve öz bir şekilde temsil eden, bu işlemi “anlama” ya da “kavrama” yeteneğine sahip bir liste oluşturma yöntemidir.
“List Comprehension” Nasıl Kullanılır?
Python’da “list comprehension” kullanımı oldukça basittir. Temelde, bir dizi ya da koleksiyon üzerinde döngü kurarak, bu döngüde belirli bir işlemi ya da filtrelemeyi gerçekleştirip, sonuçları yeni bir liste halinde alırız.
Örnek olarak, 0’dan 9’a kadar olan sayıların karesini bir liste içinde toplamak istediğimizi düşünelim. Bu aşamda artık geleneksel yöntem olarak kabul edebileceğimiz for döngüsü ile bu işlemi aşağıdaki gibi yaparız:
squares = []
for x in range(10):
squares.append(x * x)
Ancak “list comprehension” kullanarak bu işlemimizi çok daha sade bir şekilde gerçekleştirebiliriz. Bakınız:
squares = [x * x for x in range(10)]
Bunun yanı sıra, koşullu ifadeleri de bu yapı içerisinde kullanabiliriz. Yalnızca çift sayıların karesini almak istediğimizi varsayalım:
even_squares = [x * x for x in range(10) if x % 2 == 0]
Pekala fonksiyonları da bu yapıyla beraber kullanabiliriz. Bu, özellikle belirli bir işlevi tüm liste elemanlarına uygulamak istediğimizde oldukça kullanışlıdır.
Örnek olarak, bir liste içerisindeki tüm sayıları ikiye bölmek istediğimizi düşünelim. Bu işlemi bir fonksiyon yardımıyla “list comprehension” kullanarak şu şekilde gerçekleştirebiliriz:
def divide_by_two(number):
return number / 2
numbers = [2, 4, 6, 8, 10]
halved_numbers = [divide_by_two(num) for num in numbers]
“List comprehension”ın veri işleme ve analizinde ne kadar kullanışlı olabileceğini gösteren bir örnek kodlayalım.
Bir e-ticaret sitesi yönetiyorsunuz ve kullanıcılardan gelen yorumları analiz ederek, belirli kelimeler içeren yorumları filtrelemek istiyorsunuz diyelim. Örneğin, “kötü”, “berbat”, “çirkin” gibi olumsuz kelimeleri içeren yorumları bulup bir listeye eklemek istiyorsunuz.
İşte bu problemi “list comprehension” kullanarak çözebiliriz. Yorumları içeren bir liste oluşturalım ve bu yorumlardan olumsuz kelimeleri içerenleri “list comprehension” ile filtreleyelim:
yorumlar = [
"Bu ürün gerçekten çok iyi.",
"Kargo süreci berbat.",
"Beğenmedim, rengi çok çirkin.",
"Fiyatına göre fena değil ama genel olarak kötü.",
"Harika bir deneyim, teşekkürler!"
]
olumsuz_kelimeler = ["kötü", "berbat", "çirkin"]
olumsuz_yorumlar = [yorum for yorum in yorumlar if any(kelime in yorum for kelime in olumsuz_kelimeler)]
Sadece birkaç satır kod ile yorumları filtreleyebiliyoruz. Kodumuzdaki olumsuz_yorumlar
listesi artık olumsuz kelimeleri içeren yorumları barındıracaktır.
Özetle, “list comprehension” kullanımı ile, Python programlama dilinde listeler üzerinde hızla ve etkili bir şekilde işlem yapmanın yanı sıra, kodumuzu sadeleştirebilir ve okunabilirliğini arttırırız. Başlangıçta bu yapının nasıl çalıştığını kavramak zor olabilir, ancak alıştıkça, özellikle karmaşık döngü ve listelerde, ne kadar değerli bir araç olduğunu göreceksiniz.