Python’da List Comprehension

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.

 

Setler ve Frozen Setler

Collections Modülü: Counter, defaultdict, namedtuple

Generator ve Iterator Kavramları

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.