List Comprehension ile Hızlı Liste Oluşturma

List comprehension, Python'da bir satırda liste oluşturmanın en hızlı yoludur. Döngü ve koşul yazmanız gerekmiyorsa, bu yöntem hem daha kısa hem de daha hızlı çalışır.

List comprehension üç bölümden oluşur: ifade, döngü ve isteğe bağlı koşul.

1# Geleneksel yol
2kare_sayilar = []
3for i in range(1, 6):
4kare_sayilar.append(i ** 2)
5
6print(kare_sayilar)
7# Çıktı: [1, 4, 9, 16, 25]

Aynı işi list comprehension ile yapmak:

1kare_sayilar = [i ** 2 for i in range(1, 6)]
2print(kare_sayilar)
3# Çıktı: [1, 4, 9, 16, 25]

List comprehension'a if ekleyerek sadece belirli öğeleri seçebilirsiniz.

1# Sadece çift sayıları seç
2cifte_sayilar = [i for i in range(1, 11) if i % 2 == 0]
3print(cifte_sayilar)
4# Çıktı: [2, 4, 6, 8, 10]

Birden fazla döngü de kullanabilirsiniz.

1# Çarpım tablosu
2carpim = [x * y for x in range(1, 4) for y in range(1, 4)]
3print(carpim)
4# Çıktı: [1, 2, 3, 2, 4, 6, 3, 6, 9]

Bir cümledeki kelimeleri filtreleyelim.

1cumle = "Python list comprehension çok güçlü bir araçtır"
2kelimeler = cumle.split()
3
4# 5 harften uzun kelimeleri bul
5uzun_kelimeler = [k for k in kelimeler if len(k) > 5]
6print(uzun_kelimeler)
7# Çıktı: ['Python', 'comprehension', 'güçlü', 'araçtır']

List comprehension geleneksel döngülerden 2-3 kat daha hızlıdır. Kod okunabilirliği de artar çünkü tüm işlem tek satırda görülür. Büyük veri setleriyle çalışırken bu hız farkı belirgin olur.

Dikkat edilmesi gereken nokta: çok karmaşık koşullar varsa, okunabilirlik için normal döngü kullanmak daha iyi olabilir.

konu hakkında tepkinizi verebilirsiniz