List comprehension, Python’da bir listeyi kısa ve anlaşılır bir şekilde oluşturmak için kullanılan güçlü bir yapıdır. Geleneksel for
döngüsü ile yapılan işlemleri tek satırda yapmanızı sağlar. List comprehension, Python’da daha verimli ve okunabilir kod yazmanıza yardımcı olur.
1. List Comprehension Yapısı
List comprehension yapısı, bir listeyi kısa bir ifadeyle oluşturmanın basit bir yoludur.
a. Temel Yapı
[ifade for eleman in iterable]
- ifade: Her döngüde üretilen liste elemanıdır.
- eleman: İterable üzerinde iterasyon yapan döngü değişkenidir.
- iterable: Üzerinde iterasyon yapılan liste, dizi veya başka bir veri yapısıdır.
b. Örnek: Basit List Comprehension
numbers = [x for x in range(10)]
print(numbers) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Bu örnekte, range(10)
fonksiyonuyla üretilen sayılar, tek satırlık bir list comprehension kullanılarak bir listeye eklenir.
2. Şartlı List Comprehension
List comprehension yapısı, bir şartla birlikte de kullanılabilir. Bu, sadece belirli bir koşulu sağlayan elemanların listeye eklenmesini sağlar.
a. Temel Şartlı Yapı
[ifade for eleman in iterable if koşul]
- koşul: Her iterasyonda kontrol edilen ve
True
olduğunda listeye eleman eklenmesini sağlayan bir ifadedir.
b. Örnek: Çift Sayıları Filtreleme
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers) # [0, 2, 4, 6, 8]
Bu örnekte, sadece çift sayılar listeye eklenir.
3. İç İçe List Comprehension
İç içe döngülerle çalışmak gerektiğinde, list comprehension yapısı kullanılabilir. Bu, iki boyutlu listeler veya matrisler oluşturmak için kullanışlıdır.
a. Örnek: Matris Oluşturma
matrix = [[j for j in range(3)] for i in range(3)]
print(matrix) # [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
Bu örnekte, 3×3 boyutunda bir matris oluşturulur.
b. Örnek: İki Boyutlu Listede Düzleştirme (Flattening)
Bir iki boyutlu listeyi tek boyutlu bir listeye dönüştürmek için iç içe list comprehension kullanılabilir.
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [item for sublist in matrix for item in sublist]
print(flat_list) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
Bu örnekte, matrisin tüm elemanları düzleştirilerek tek boyutlu bir liste oluşturulur.
4. List Comprehension ile Fonksiyon Kullanımı
List comprehension, fonksiyonları çağırarak her iterasyonda bir işlem yapmak için de kullanılabilir.
a. Örnek: Sayıların Karesini Alma
def square(x):
return x ** 2squares = [square(x) for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Bu örnekte, square
fonksiyonu her sayı için çağrılır ve karesi alınarak listeye eklenir.
5. List Comprehension ile Sözlükler ve Setler
List comprehension yapısını, sözlükler ve setler için de benzer şekilde kullanabilirsiniz. Python’da sözlükler ve setler için özel comprehension yapıları vardır.
a. Set Comprehension
Set comprehension, bir set oluşturmak için list comprehension yapısına benzer bir şekilde kullanılır.
squares = {x ** 2 for x in range(10)}
print(squares) # {0, 1, 4, 36, 9, 16, 81, 64, 49, 25}
b. Sözlük Comprehension
Sözlük comprehension, bir sözlük oluşturmak için kullanılır.
squares_dict = {x: x ** 2 for x in range(10)}
print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
List comprehension, Python’da daha kısa, okunabilir ve verimli kod yazmanıza olanak tanır. Şartlı ifadeler, iç içe döngüler ve fonksiyonlarla birleştirildiğinde, karmaşık işlemleri bile basit bir şekilde ifade edebilmenizi sağlar. Bu yapı, özellikle büyük veri kümeleri üzerinde hızlı işlemler gerçekleştirmek ve kodu daha kompakt hale getirmek için son derece kullanışlıdır.
Bir yanıt yazın